$bus是什么?
关于$bus 我们把它叫做事件总线,它Vuex很像,但是它不是用来管理状态的,是管理事件总线的。主要是解决无关系组件之间的交互问题。
组件中使用
可以通过this.$bus.$emit(‘aaa’)发送事件函数
可以通过this.$bus.$on(‘aaa’)接受事件函数
在一个组件中发送
methods:{
foo(){
this.$bus.$emit('aaa',this.aaa)//发送数据,第一个参数是发送数据的名称,接收时还用这个名字接收,第二个参数是这个数据现在的位置;
}
}
另一个组件接受
created() {
this.$bus.$on('aaa', (aaa)=>{}) //接收数据,第一个参数是数据的名字,与发送时的名字对应,第二个参数是一个方法,要对数据的操作
}
因为$bus没有挂载vue所以一直是undefined
可以在main.js中挂载
Vue.prototype.$bus = new Vue()