首先我们要需要创建一个做中央事件总线
在main.js里
Vue.prototype.$bus = new Vue();
然后我们就可以通过this.$bus.$emit 和this.$bus.$on 来完成兄弟组件之间的通讯
兄弟页面a
itemClick(){
this.$bus.$emit('updata','参数')
this.$router.push({
path:'/test'
})
},
兄弟页面b
mounted(){
this.$bus.$on('updata',(data)=>{
console.log(data)
})
},
此时,你就可以正常使用兄弟之间得组件通信,但是还有一个问题,就是当你多次使用兄弟组件之间的通信时,会发现,每执行一次,会触发多次,每次执行完我们还需要销毁
destroyed(){
this.$bus.$off('updata')
}
有好几种方法 但是还是觉得这种最好用