eventBus父组件$emit一次子组件多次收到$on
参考(EventBus踩坑1-CSDN博客)
父组件emit出了事件,这个过程需要一定时间,这段时间过长,子组件还未接收到父组件的emit,父组件认为子组件没有收到,于是再次发送emit... 最终子组件收到了多个emit,自身的监听的事件被触发了多次。因此就出现了:父组件内的emit只调用了一次(多次emit发生在EventBus内部),子组件绑定的监听事件却被触发了多次。
父组件
Bus.$emit('handMovementRefresh');子组件防止eventBus认为子组件未接收到消息多次发送请求 -- 每次监听事件之前在子组件中清除上一次的监听
Bus.$off('handMovementRefresh');
Bus.$on('handMovementRefresh', () => {console.log('handMovementRefresh')this.xxx();
})