二刷父子组件通信props
子组件不能直接获取父组件中的数据,因此需要利用别的途径
子组件
vue也相当于组件,并且是所有组件的父组件,这里就将vue看作父组件
运行结果
根据上几张图片,很清楚的看出父组件中data数据传到了props中,且利用了v-bind语法糖动态绑定,props里面的数据也可以是对象,比如
props: {
cInfo: {
type: Object,
//如果是对象 default就是函数,返回一个对象
default () {
return {}
},
},
childMyMessage: {
type: String,
default: '我是默认值'
}
},
附件:源代码
<body>
<div id="app">
<cpn :smessage='message' :smovies='movies'></cpn>
</div>
<template id='cpnC'>
<div>
<ul>
<li v-for="item in smovies">{{item}}</li>
</ul>
<h5>{{smessage}}</h5>
</div>
</template>
<script>
// 父传子
let cpn = {
template: '#cpnC',
// props: ['smovies', 'smessage'], //3.变量的数组写法
props: { //变量的对象写法
//1.类型限制
// smovies: Array,
// smessage: String,
// 2. 提供一些默认值
smovies: {
type: Array,
default: [], //并没有报错
},
smessage: {
type: String,
required: true,
default: '测试'
},
},
};
//相当于父组件,根组件
let app = new Vue({
el: '#app',
data: {
movies: ['嗨', '你好', '!!!'],
message: '你好啊',
},
methods: {},
components: {
cpn, //字面量的增强写法
}
});
</script>
</body>