vue----事件总线(eventBus)

Vue事件总线(eventBus)

事件总线eventBus来进行两个组件间的通信, 
使用方法是是建立eventBus.js文件,如下:

import Vue from 'vue'
export default new Vue();

在需要通信的两个组件中分别import

  import bus from "common/utils/eventBus";
  • 然后就可以通过emit、on进行通信:如下:
一个组件中发射
bus.$emit('SUBMITSEARCH_PEOPLE',this.searchContent)
另一个组件中接收
bus.$on('SUBMITSEARCH_PEOPLE', function (data) {...}

三者区别:

1、vm.$on( event, callback )

监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。

2、vm.$emit( event, […args] )

触发当前实例上的事件。附加参数都会传给监听器回调,如果没有参数,形式为vm.$emit(event)

3、vm.$off( [event, callback] )

移除自定义事件监听器。

  • 如果没有提供参数,则移除所有的事件监听器;
  • 如果只提供了事件,则移除该事件所有的监听器;
  • 如果同时提供了事件与回调,则只移除这个回调的监听器。

你可能感兴趣的:(vue)