兄弟组件间通信:事件总线的使用 b u s 、 bus、 bus、emit、$on
一、介绍
一个vue.js肯定是由多个组件组成的,而组件实例的作用域是相互独立的,即不同组件之间的数据无法简单的相互引用。
但是避免不了有时需要相互引用,比如一个父组件包含多个子组件,当父组件更改后需要同时更新各个子组件的数据。
一般组件间有几种关系,像A.vue与B.vue是父子关系,A.vue与C.vue是隔代关系,C.vue和D.vue是兄弟关系,
不同的关系之间可能通信方式不同,比如父组件向子组件传递值经常使用props方式。 e m i t / emit/ emit/on方式可以应用每种关系。
二、使用
1、在main.js中,添加一个事件总线
Vue.prototype.$bus = new Vue()
2、在发送事件的地方
this.$bus.$emit('你要发送的事件', 参数)
3、在接收事件的地方
this.$bus.$on('接收的事件',(参数)=>{ //执行对参数的操作 })