@gby/event
v1.1.0
Published
@gby/event 称为 库构建模板,又称 公共代码构建模板 ,是专门用于构建 公共代码(如:封装的库、工具等) 的 vite 配置模板,当需要开发和构建公共代码时,直接克隆本项目即可,并默认在的 src 目录下开发即可;
Downloads
333
Maintainers
Readme
目录
背景
Web 提供了 EventTarget,Node.js 提供了 EventEmitter,但两者行为不一致,无法跨平台复用。此外,实际开发中常需要根据监听器数量来决定是否开启某些计算(如数据订阅、动画循环),而现有方案都不提供开箱即用的监听器计数事件。
@gby/event 提供了一套统一、轻量的事件 API,解决上述两个问题。
简介
@gby/event 是一个跨平台的事件库,核心导出两个类:
EventTrigger— 基础事件发射器CountEventTrigger— 在EventTrigger基础上,额外提供监听器计数变化事件
特性:
- 自动去重:同一函数引用对同一事件只注册一次,避免重复触发
- AbortSignal 支持:监听器可随
AbortController的中止自动解绑 - 有限次数监听:
addListenerWithTimes到达指定次数后自动移除 - 监听器计数事件:
CountEventTrigger.countChangeEvents可订阅任意事件的监听器增减 - 异常隔离:
ignoreError为true时,单个监听器抛出异常不影响后续监听器执行 - 完整 TypeScript 类型支持,事件参数类型安全
详情请看:
如果您在使用的过程中遇到了问题,或者有好的建议和想法,您都可以通过以下方式联系我,期待与您的交流:
- 给该仓库提交 issues
- 给我 Pull requests
- 邮箱:[email protected]
- 微信:keyanzhe
安装
通过 npm 安装
npm install @gby/event通过 <script> 标签引入
从 发行地址 下载以 .iife.js 为后缀的文件,然后在页面中引入:
<script src="path/to/event.iife.js"></script>
<script>
const { EventTrigger, CountEventTrigger } = GbyEvent;
</script>快速上手
import { EventTrigger } from '@gby/event';
type MyEvents = {
greet: [name: string];
ping: [];
};
const et = new EventTrigger<MyEvents>();
// 添加监听器
const remove = et.addListener('greet', (name) => {
console.log(`Hello, ${name}!`);
});
et.emit('greet', 'Alice'); // Hello, Alice!
// 移除监听器
remove();
et.emit('greet', 'Bob'); // 不再触发教程
详情跳转至 教程
API 文档
详情跳转至 API接口文档
有您的支持,我会在开源的道路上,越走越远

