前言vue组件中最常见的数据传输就是父子组件之间的传输。Parenttochild通过props将数据向下传递给子组件;childtoparent通过$emit发送事件,携带数据给父组件。而且有时两个组件之间没有任何关系,或者它们之间的结构很复杂,如何传递数据?这时候就需要用到vue中EventBus的概念了。[数据结构与算法完整代码],[前端技术交流群]文EventBus介绍EventBus,又称事件总线,相当于一个全局仓库。任何组件都可以去这个仓库获取事件,如图:EventBus的使用废话不多说,直接开始使用EventBus。1.使用EventBus进行初始化,首先要初始化一个EventBus,这里称之为全局事件总线。第一种初始化方法importVuefrom'vue'//因为是全局的'仓库',所以初始化要全局初始化constEventBus=newVue()第二种初始化方法(本文用的就是这种初始化方法)//在已经创建的Vue实例的原型中创建一个EventBusVue.prototype.$EventBus=newVue()。2、向EventBus发送事件发送事件的语法:this.$EventBus.$emit(senteventname,passedparameters)EventBus创建完成后,我们需要将需要传递的事件发送给它,这样其他组件可以从EventBus中获取。示例:有两个组件A和B需要通信。它们不是父子组件关系。B事件需要获取A事件中的一组数据data3.接收事件接收事件语法:this.$EventBus.$on(监听事件名称,回调函数)A组件向全局事件总线EventBus发送了一个aMsg事件,B组件就可以去aMsg收听此事件并获取一些数据。 {{msgB}} {{msgB}}
