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()
    })

 

posted @ 2019-08-06 20:22  四季春的茶-  阅读(669)  评论(0编辑  收藏  举报