Skip to content

🧱以简单的 api,类似于 vue 的 Eventbus 一样的使用方式,实现 跨浏览器 tab 之间 通信。

License

Notifications You must be signed in to change notification settings

cjfff/enhance-eventbus

Repository files navigation

enhance-eventbus

NPM Download NPM Version NPM License PRs Welcome typescript package size

介绍

eventBus 是一个典型的发布订阅模式的实践,而这个包的基础功能就是发布订阅。

eventBusnode.js 中本就自带,所以为什么需要写这个包呢?

其实从包名 enhance-eventbus 中也可以看出来,这是一个增强 (其实是不会起名字) 的 eventBus

它比普通的 eventBus 多了可以在浏览器跨 tab (有同源限制)。

它的 api 跟普通的 eventBus 是一样的使用方式的,极其简单, 相信使用过 vue 里面 eventBusnew 一个 vue 实例作为eventBus)的小伙伴们, 都知道怎么使用~

example

example

// yarn add enhance-eventbus or npm i -S enhance-eventbus

const eventBus = new tabeventbus.StorageEventBus({
  isDev: () => true
})

eventBus.on('someEvent', (data) => {

  console.log(data)
})

eventBus.emit('someEvent', {msg: 'hello world'})

vue project example

import enhanceEventbus from "enhance-eventbus"
import Vue from "vue"

Vue.use(enhanceEventbus, {
  type: "storage",
  globalKey: "$eventBus" // 这里配置的是 vue.prototype 挂载的属性名叫什么
})

感谢以下项目(排名不分先后)

About

🧱以简单的 api,类似于 vue 的 Eventbus 一样的使用方式,实现 跨浏览器 tab 之间 通信。

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages