Vue中獨立組件之間數據交互


獨立組件之間數據交互:通過自定義事件

組件A中的【數據】,傳遞給組件B

1.創建組件A,組件B
2.組件B在實例創建完成時就開始監聽事件【等待接收數據】:鈎子
3.組件A中觸發事件,發送數據

注意:接收數據的函數,一定要綁定在生命周期創建鈎子上(created:function(){})
1、引入相應的文件

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

 


2、Dom文件

<div id="app">
    <comp-a></comp-a>
    <comp-b></comp-b>
</div>

 

3、js的相關內容

 1 <script>
 2     Vue.component("compA", {
 3         template:"<button @click='test'>組件A中,觸發事件</button>",
 4         methods:{
 5             test:function() {
 6                 bus.$emit("myevent", this.username);//$emit("事件名稱",[參數列表])通過$emit在代碼中觸發一個事件
 7             }
 8         },
 9         data:function() {
10             return {
11                 username:"jerry"
12             }
13         }
14     });
15     Vue.component("compB", {
16         template:"<h2>{{ds}}</h2>",
17         created:function() {/*這是實例創建完成時自動調用的生命周期鈎子*/
18             var that = this;
19             bus.$on("myevent", function(msg) {//通過$on("事件名稱",function(參數列表){})來監聽一個事件是否進行處理
20                 // 接收到數據之后,就可以更新組件中使用的數據,然后展示到頁面上
21                 console.log("接收到其他組件傳遞的數據:" + msg);
22                 that.ds = msg;
23             });
24         },
25         data:function() {
26             return {
27                 ds:"hello"
28             }
29         }
30     });
31 
32     /*定義一個消息分發中間件*/
33     var bus = new Vue();
34 
35     var vm = new Vue({
36         el:"#app"
37     });
38 </script>

 


免責聲明!

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



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