Vue中eventbus很头疼?我来帮你

7,987 阅读1分钟

话不多说,直接上干货

现存痛点

  • 你只是想简单的要一个事件的发布订阅来通知下兄弟组件执行个方法?
  • 你是否还在为引入一个eventbus后,每次还要手动调用卸载(off)而头疼?
  • 你是否还在为要去想各种bus的【pub、sub】、【$on、$emit】、【fire、listen】balabala一系列的方法名字而头疼?

如果上面是你的痛点,那么今日你开始你用Vue幸福的日子来了:

vue-event-proxy

通过最小的代价,让你的Vue支持全局事件,用了它,你仅需要在需要做全局通知的时候,加入 global:前缀即可完成全局事件发布,简单吗?

    this.$emit('global:你的事件名字');

有发布,那么监听呢?

    this.$on('global:你的事件名字', () => {});

怎么样?是不是除了在事件名字前面加了global:其他都没变化,如果你还不了解Vue这部分内容,我帮你准备好了,官方文档

使用方法

$ npm install --save vue-event-proxy

在你项目的主入口(vue-cli生成的main.js)中加入:

  import EventProxy from 'vue-event-proxy';
  Vue.use(EventProxy);

接下来,尽情的使用吧。

如果对此实现感兴趣,源码地址奉上。