一、父组件向子组件传值
其实该问题是说子组件如何访问父组件的属性和方法?那么根据对组件化的理解,无非就是要解决两个问题:
1、父组件如何将值传给子组件?
2、子组件如何获取父组件传递过来的值?
解读vue示例代码:
1、父组件向子组件传值是通过“属性绑定”的形式实现的(第2行)
2、子组件默认是无法访问到父组件中的数据和方法的(如果去掉19行,18行是取不到数据的,浏览器还会报错)
过程分析:
1、首先,第2行是引用子组件对象模板,通过属性绑定的方式将父组件的msg绑定给自定义的属性名称parentmsg,这一步已经把父 组件的值传给了子组件;
2、看代码vue中是通过在子组件中定义props属性,并将绑定的属性名传进去就可以获取到父组件传过来的值。
关键字:属性绑定 、 props
注意:
1、子组件data里面的数据是子组件私有的,可读可写。
2、组建中props种的数据都是通过父组件传递过来的,可读不可写。
1 <div id='app'> 2 <com1 :parentmsg='msg'></com1> 3 </div> 4 5 6 var vm = new Vue({ 7 el:'#app', 8 data:{ 9 msg: '这是父组件中的数据' 10 }, 11 methods:{}, 12 //定义子组件 13 components:{ 14 com1:{ 15 data(){ 16 return {title:'子组件',content:'这是子组件内容'} 17 }, 18 template:'<h1>这是子组件--{{parentmsg}}</h1>', 19 props:['parentmsg'] 20 } 21 } 22 })