
手写事件总线
发布日期:2021-05-07 23:08:59
浏览次数:22
分类:精选文章
本文共 1127 字,大约阅读时间需要 3 分钟。
EventBus 是一种常用的解决组件间通信问题的技术,通过定义事件和注册处理函数,实现不同组件之间的高效通信。以下是 EventBus 的实现代码及使用方法:
function EventBus() { const listeners = {}; // 存储所有事件及其对应的处理函数集合 return { $on(eventName, handler) { if (!listeners[eventName]) { listeners[eventName] = new Set(); } listeners[eventName].add(handler); }, $off(eventName, handler) { if (!listeners[eventName]) { return; } listeners[eventName].delete(handler); }, $emit(eventName, ...args) { if (!listeners[eventName]) { return; } for (const handler of listeners[eventName]) { handler(...args); } } };}
EventBus 的核心逻辑包括三个主要方法:
$on(eventName, handler)
:用于注册事件监听器。首先检查事件名称是否存在,如果不存在则创建一个新的事件存储集合,并将提供的处理函数添加到集合中。
$off(eventName, handler)
:用于移除已注册的事件监听器。首先检查事件名称是否存在,如果存在则移除对应的处理函数。
$emit(eventName, ...args)
:用于触发已注册的事件监听器。首先检查事件名称是否存在,如果存在则遍历该事件的所有处理函数并执行它们,传递提供的参数。
通过以上方法,开发者可以轻松地在组件间定义事件并进行通信,提升应用程序的结构和可维护性。例如,在前端框架中,EventBus 可以用来实现组件间的数据通信,简化状态管理和事件传递流程。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月25日 15时36分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JavaWeb---实现JavaBean来接收参数、请求转发、域对象
2019-03-05
瀚高数据库中 java代码类型与bit对应(APP)
2019-03-05
选择性估算器绕过行安全策略漏洞
2019-03-05
admin 修改数据报错
2019-03-05
PostgreSQL中的触发器
2019-03-05
对PostgreSQL数据库结构的宏观理解
2019-03-05
Postgresql 日期和时间类型
2019-03-05
xmin、xmax、cmin、cmax
2019-03-05
《卸甲笔记》-PostgreSQL和Oracle的数据类型的对比系列五:其它类型
2019-03-05
查询某表格上次进行vacuum的时间
2019-03-05
Failed to execute vcredist_x64.exe
2019-03-05
invalid byte sequence for encoding
2019-03-05
Centos7.0系统上使用yum安装相关包时出现KeyboardInterrupt错误
2019-03-05
Highgo Database故障收集脚本
2019-03-05
PostgreSQL中的隐式连接和显式连接
2019-03-05
failed to initialize the database
2019-03-05
Failed to execute vcredist_x64.exe
2019-03-05
invalid byte sequence for encoding
2019-03-05
银河麒麟系统配置apt网络源
2019-03-05
Linux内核结构粗解及关于 shell 通俗理解
2019-03-05