ts-bus 简单使用

2020-07-15  本文已影响0人  VioletJack

今天开发中用到了 ts-bus 这个库,用于事件传递挺方便的。
文档地址:https://www.npmjs.com/package/ts-bus

简单的例子

import { EventBus, createEventDefinition } from "ts-bus";
 
// 创建 EventBus 事件
export const someEvent = createEventDefinition<{ url: string }>()("SOME_EVENT");
 
// 创建 bus 实例
const bus = new EventBus();
 
// 订阅 EventBus 事件,没到 publish 就会收到消息。函数返回参数是一个函数,用于取消订阅。
const unsubscribe = bus.subscribe(someEvent, event => {
  alert(event.payload.url);
});
 
// 发布消息,发布的消息会在订阅事件中收到
bus.publish(someEvent({ url: "https://github.com" }));

// 取消订阅
unsubscribe();

其实就很好理解了,全局定义一个 EventBus 实例和一些事件。在需要收消息的地方订阅,在需要发消息的地方发布。最后记得用完了要取消订阅。

另外,它对 React 提供了一些扩展,如 hook 函数这种,具体用法参考文档~

最后

其实还有很多 EventBus 的库,这个会比较轻量一些。

上一篇 下一篇

猜你喜欢

热点阅读