例如兄弟组件A和组件B,B要调用A的某个事件
一、新建bus.js,并引用
/**bus.js**/
import Vue from 'vue'
const bus = new Vue()
export default bus
bus.js我放在src/assets/utils路径下面
二、在B组件页面里
// 引入 bus.js
import bus from '@/assets/utils/bus'
// 通过$emit() 传递事件
bus.$emit('showTime') // showTime改为你自己的
三、在A组件页面 mounted()内接收
// 引入 bus.js
import bus from '@/assets/utils/bus'
mounted () {
bus.$on('showTime', res => {
// this.showTime = true // 进行你要的操作
})
}
四、注册的总线事件(Bus)要在组件销毁时(beforeDestroy/destroyed)卸载,否则会多次挂载,造成触发一次但多个响应的情况
beforedestroy () {
bus.$off('showTime')
}