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();
})