当先锋百科网

首页 1 2 3 4 5 6 7

Vue的EventBus是一种事件通信机制,可以实现组件间的数据传递。在使用EventBus时,需要在Vue实例上创建一个EventBus实例,并在组件中使用$emit()方法来触发事件,使用$on()方法来监听事件。

然而,在组件销毁时,EventBus实例仍然存在,可能会导致内存泄漏的问题。因此,需要在组件销毁前,手动取消对事件的监听以及销毁EventBus实例。

// 创建EventBus实例
import Vue from 'vue'
export const EventBus = new Vue()
// 组件中监听事件
import { EventBus } from '@/utils/eventBus'
EventBus.$on('eventName', () =>{
// 处理事件逻辑
})
// 组件销毁前取消事件监听以及销毁EventBus实例
import { EventBus } from '@/utils/eventBus'
export default {
beforeDestroy () {
EventBus.$off('eventName')
EventBus.$destroy()
}
}