bus通常使用在兄弟与兄弟组件之间
在组件中,使用emit 、on、off分别来分发,监听,取消监听事件 这里的off可以取消多次使用bus监听的事件
- 新建bus.js文件,引入vue
import Vue from 'vue'
const bus = new Vue();// 使用 Event Bus
export default bus;
- 在main.js中引入vue bus (也可以在使用的组件中引入)
import Bus from './common/bus';
Vue.prototype.$bus = Bus
- 使用
this.$bus.$emit("Page",value); //很像父子之间传值的方法
- 接收
this.$bus.$on("Page", v =>{ //vaPage传的时候的key是什么接收就必须是什么
console.log(v); //v是传来的值,可以接收多个参数
})
- 销毁
beforDestroy(){
this.$bus.$off("Page"); //当这个组件销毁的时候bus也跟着一起销毁
}