Vue實現同級組件的通信


一、文件結構

 

二、vue.js

打開此鏈接 https://cdn.bootcss.com/vue/2.6.10/vue.js 

復制粘貼頁面的所有內容

 

 

三、index.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>index</title>
 8 
 9 </head>
10 <body>
11     <div id="app">
12         <huahua></huahua>
13         <shuandan></shuandan>
14     </div>
15    
16     <script src="../lib/vue.js"></script>
17     <script src="./js/main.js"></script>
18 </body>
19 </html>

 

四、main.js

 1 // 外部的事件調度器
 2 var Event = new Vue();
 3 
 4 // 花花同學說話
 5 Vue.component("huahua",{
 6     template:`
 7         <div>
 8             我說:<input @keyup="on_change"  v-model="i_said"/>
 9         </div>
10     `,
11     data:function(){
12         return{
13             i_said:''
14         }
15     },
16     methods:{
17         on_change:function(){
18             Event.$emit("huahua-said-something",this.i_said)
19         }
20     }
21 });
22 
23 
24 // 栓蛋同學聽到后,復述花花同學說的話
25 Vue.component("shuandan",{
26     template:`
27         <div>花花說:{{huahua_said}}</div>
28     `,
29     data:function(){
30         return{
31             huahua_said:''
32         }
33     },
34     // 時間鈎子,一旦這個組件初始化完成,就開始執行定義的方法
35     mounted:function(){
36         // 下面的this指向組件,將其賦值給變量me
37         var me = this;
38         // 使用調度器來監聽事件
39         Event.$on("huahua-said-something",function(data){
40             // 下面的this指向Event對象(原因可能是由於回調函數是由Event對象執行的緣故)
41             // console.log(this);
42             me.huahua_said = data;
43         })
44     }
45 });
46 
47 new Vue({
48     el:"#app"
49 });

 

五、效果

 

六、謝謝觀看,如有問題,隨時交流哦

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM