Vue的EventBus是一種事件通信機制,可以實現(xiàn)組件間的數(shù)據(jù)傳遞。在使用EventBus時,需要在Vue實例上創(chuàng)建一個EventBus實例,并在組件中使用$emit()方法來觸發(fā)事件,使用$on()方法來監(jiān)聽事件。
然而,在組件銷毀時,EventBus實例仍然存在,可能會導致內(nèi)存泄漏的問題。因此,需要在組件銷毀前,手動取消對事件的監(jiān)聽以及銷毀EventBus實例。
// 創(chuàng)建EventBus實例 import Vue from 'vue' export const EventBus = new Vue() // 組件中監(jiān)聽事件 import { EventBus } from '@/utils/eventBus' EventBus.$on('eventName', () =>{ // 處理事件邏輯 }) // 組件銷毀前取消事件監(jiān)聽以及銷毀EventBus實例 import { EventBus } from '@/utils/eventBus' export default { beforeDestroy () { EventBus.$off('eventName') EventBus.$destroy() } }