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') },