初识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>

 

posted @ 2017-12-27 13:27  Angel爽  阅读(293)  评论(0编辑  收藏  举报