非父子組件之間的通信,必須要有公共的實例(可以是空的),才能使用 $emit
獲取 $on
的數據參數,實現組件通信
第一個組件的數據傳遞給第二個組件
公共實例文件bus.js,作為公共數控中央總線
import Vue from "vue"; export default new Vue();
第一個組件 first.vue
import Bus from '../bus.js'; export default { name: 'first', data () { return { value: '我來自first.vue組件!' } }, methods:{ add(){// 定義add方法,並將msg通過txt傳給second組件 Bus.$emit('txt',this.value); } } }
第二個組件second.vue
import Bus from '../bus.js'; export default { name: 'second', mounted:function(){ Bus.$on('txt',function(val){//監聽first組件的txt事件 console.log(val); }); } }