一、EventBus的简介
EventBus 又称时间总线 ,理解上来讲 EventBus 机制是通知的概念,EventBus作为所有组件共享的事件中心,既可以发送事件也可以接受事件,所有组件都可以平行的接到到相对应的数据。
新建一个js文件
// EventBus.js
import Vue from 'vue'
export defalut new Vue()
在点击页面的点击事件里面写:前面是事件,后面是值
页面需要引入EventBus文件
使用 EventBus.$emit(‘事件名称’,数据)进行发送数据
import { EventBus } from "@/utils/event-bus";components: {EventBus,},
EventBus.$emit('exportTaskInfo',asyncExcelAStatus);
在需要事件调用的页面:前面是事件,后面是值
页面需要引入EventBus文件
在组件中引入总线文件 ,使用 EventBus.$on(‘emit事件名’,callback(payload1...))进行接受事件
在一个组件中某事件如果只监听一次的话,可以使用 EventBus.$once('事件名称',callBack(payload1...));
EventBus.$off('XXXXX', {}) // 移除指定事件
EventBus.$off('XXXXX') // 移除应用内所有对此事件的监听
EventBus.$off() // 移除应用内所有事件的监听
mounted() {EventBus.$on('exportTaskInfo',this.exportTaskInfo);},beforeDestroy() {// 组件销毁前移除事件监听器EventBus.$off('exportTaskInfo', this.exportTaskInfo);},