初识vue.js,我的学习之路(五)
vue中的父子组件值的传递
在子组件中定义props属性,里面写上属性名称,:message全写就是v-bind,通过这种方式实现父子组件值的传递。
1 <div id="app"> 2 3 <div> 4 {{parent}} 5 </div> 6 7 <com :message="parent"></com> 8 9 10 </div> 11 12 <script src="vue.js"></script> 13 <script> 14 15 new Vue({ //父组件 16 data:{ 17 parent:"这是父组件" 18 }, 19 el:"#app", 20 components:{ 21 22 com:{ //子组件 23 props:["message"], 229 template:"<h1>{{message}}</h1>" 30 31 } 32 33 } 34 }) 35 </script>
子与子之间的值传递
自定义事件
- 使用 $on(eventName) 监听事件
- 使用 $emit(eventName) 触发事件
1 <div id="app"> 2 3 <aaa></aaa> 4 <bbb></bbb> 5 6 </div> 7 8 <script src="vue.js"></script> 9 <script> 10 11 var Vm = new Vue(); 12 13 new Vue({ 14 el:"#app", 15 components:{ 16 aaa:{ 17 data:function(){ 18 return{ 19 str1:"a数据" 20 } 21 }, 22 template:"<h1 @click='run'>这是A子组件==>{{str1}}</h1>", 23 methods:{ 24 run:function(){ 25 Vm.$emit("show",this.str1); 26 } 27 } 28 }, 29 bbb:{ 30 data:function(){ 31 return{ 32 b:"" 33 } 34 35 }, 36 template:"<h1>这是B子组件===:>{{this.b}}</h1>", 37 mounted:function(){ 38 var _this = this; 39 Vm.$on("show",function(data){ 40 _this.b = data; 41 }) 42 } 43 } 44 } 45 46 }) 47 </script>