Vue 使用eventBus 实现兄弟组件间的通信
实现方式: 主要是在相互通信的兄弟组件之中,都引入一个新的vue实例,然后通过分别调用这个实例的事件触发事件广播 和监听来实现通信和参数传递。
需求: a页面tree的增删改后,数据还是之前的老数据,要求b页面的tree的数据也要更新。
A页面: 绑定事件,并通过eventBus.$emit触发。
增加 window.eventBus.$emit('getTreeData',1)
getTreeData(){ // 获取节点数据 window.eventBus.$emit('getTreeData',1) axios.get('getpro/getTree') .then((res) => { if(res.data.retCode === '200'){ this.Opt = Vue.formatTreeData3(res.data.data) },
B页面: created或者mounted里调用,使用eventBus.$on接收。
window.eventBus.$on('getTreeData',()=>{ this.getTreeData() })