eventBus 適用於不同頁面傳遞值,當然也可以用vuex, 本篇講解的是如何使用吃,並銷毀eventBus
我在A頁面中發布
1 mounted(){ 2 eventBus.$on("clickLeft",(id)=>{ 3 this.groupId = id; 4 this.getTableData() 5 }) 6 },
在B頁面中觸發
1 clickItems(id){ 2 this.activeId = id; 3 eventBus.$emit("clickLeft",id) 4 }
然而,傳值是實現了, 但是當我刷新頁面或者N次點擊此菜單時,會發現A頁面的接口被觸發了N+1次,這是因為 $on事件是不會自動清楚銷毀的,需要我們手動來銷毀
所以。我在A組件頁面中添加Bus.$off來關閉。代碼如下:
beforeDestroy () { eventBus.$off('clickLeft') },