一、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);},