这里子组件接收参数,为什么不能直接写成,接收“params”?

这里子组件接收参数,为什么不能直接写成,接收“params”?

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <script src="https://unpkg.com/vue@next"></script>

</head>

<body>

    <div id="root"></div>

</body>

<script>

const app = Vue.createApp({

    data(){

        return{

            params:{

                a:123,

                b:456,

                c:789

            }

        }

    },

    template:`<div><test v-bind="params" /></div>`

});


app.component('test',{

// props:['a','b','c'],


props:['params'],

template:`<div>{{params.a}}</div>`

});


const vm = app.mount('#root');

</script>

</html>

https://img1.sycdn.imooc.com//climg/6289efbc096e7d5807870930.jpg


老师,这里子组件接收参数,为什么不能直接写成,接收“params”?,一定要在子组件的props里,像这样  【props:['a','b','c'],】 把所有接收的参数,一条一条写全吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
卡布琦诺 2022-05-22 16:31:36

同学你好,之所以要在子组件的props中声明,是因为子组件不能直接在模板里面渲染父元素的数据。如果子组件想要引用父元素的数据,那么就在prop里面声明一个变量,这个变量可以引用父元素的数据,然后在模板里渲染这个变量,这时候渲染出来的就是父元素里面的数据。也就是说props是子组件访问父组件数据的唯一接口。子组件要接收的父元素的数据必须在props中进行声明,否则是无法接收到父元素传递的数据的。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师