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