var vm = new Vue({
el: '#app',
data: {
// 空的實例放到根組件下,所有的子組件都能調用
Bus: new Vue()
},
template: '<App/>',
components: { App },
})
this.$root.Bus.$emit("exportschre",this.count); //發送事件
this.$root.Bus.$on('exportschre', value => {})//事件監聽
在監聽的時候發現會觸發多次,解決辦法就是在組件銷毀的時候也銷毀該事件,但是在router-link路由切換之后就會無法監聽,所以有些情況存在bug,具體情況具體分析
beforeDestroy() { this.$root.Bus.$off("exportschre"); }
router-link路由切換之后就會無法監聽解決辦法:就是在監聽之前先銷毀改事件,然后就只觸發一次
this.$root.Bus.$off("exportschre"); this.$root.Bus.$on('exportschre', value => { })