记录一下, EventBus会被多次触发, 触发条件是 子组件传值到父组件之后,父组件返回出去,再一次进来之后,再使用EventBus从子组件传值到父组件,就会多一次。因为组件间切换不会有强制刷新。
原因 - > 从父组件返回的时候没有清除掉 【this.$bus.$on(event,data)】 event事件, 累积导致。
解决方法 -> 1,在每次调用方法前先解绑事件( bus.$off ),然后在重新绑定( bus.$on )
2,注册的总线事件(Bus)要在组件销毁时(beforeDestroy/destroyed)卸载,否则会多次挂载,造成触发一次但多个响应的情况
1.
bus.$off("event"); // 解绑
//绑定
bus.$on('event', () => {
// ....
})
2. 在接收页面 每次离开页面都销毁
beforeDestroy () {
bus.$off("event");
}