Vue组件通信之巴士的具体使用

  

关于组件通信我相信小伙伴们肯定也都很熟悉,就不多说了,对组件通信还不熟悉的小伙伴移步这里。
  

  

在vue2.0中调度和广播美元已经被弃用,官方文档中给出的解释是:

  

因为基于组件树结构的事件流方式实在是让人难以理解,并且在组件结构扩展的过程中会变得越来越脆弱。这种事件方式确实不太好,我们也不希望在以后让开发者们太痛苦。并且调度和广播美元也没有解决兄弟组件间的通信问题。
  

  

官方推荐的状态管理方案是Vuex。不过如果项目不是很大,状态管理也没有很复杂的话,使用Vuex有种杀鸡用牛刀的感觉,当然,这也是要根据自己的需求来的,只是建议。

  

vue官方文档中有这样一个定义:非父子组件的通信,内容很少,如下:
  

  

 Vue组件通信之巴士的具体使用“> <br/>
  </p>
  <p>其实关于这个非父子组件通信的演示还是有的,它藏在了调度和广播的美元迁移文档中,有兴趣的小伙伴可以点击进去查看。文档中的建议就是:</p>
  <p>对于调度和广播美元最简单的升级方式就是:通过使用事件中心,允许组件自由交流,无论组件处于组件树的哪一层。由于Vue实例实现了一个事件分发接口,你可以通过实例化一个空的Vue实例来实现这个目的。<br/>
  这个集中式的事件中间件就是公共汽车。我习惯将巴士定义到全局:</p>
  </p> <p> app.js
  
  <pre类=   var eventBus={   安装(Vue、期权){   Vue.prototype。$总线=vue   }   };   Vue.use (eventBus);      

然后在组件中,可以使用释放美元,美元,美元从分别来分,发监听,取消监听事件:

  

分发事件的组件

     //?   方法:{   待办事项:函数(){   美元。公共汽车。美元发出(todoSth, params);//参数是传递的参数//?   }   }   之前      

监听的组件

     //?   创建(){   美元。公共汽车。美元(“todoSth”(params)=比;{//获取传递的参数并进行操作//todo的东西   })   },//最好在组件销毁前//清除事件监听   beforeDestroy () {   这个。汽车。美元(“todoSth”);   },   之前      

如果需要监听多个组件,只需要更改车的eventName:

     //?   创建(){   美元。公共汽车。美元(firstTodo, this.firstTodo);   美元。公共汽车。美元(secondTodo, this.secondTodo);   },//清除事件监听   beforeDestroy () {   美元。公共汽车。美元(firstTodo, this.firstTodo);   美元。公共汽车。美元(secondTodo, this.secondTodo);   },      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Vue组件通信之巴士的具体使用