也叫订阅发布、事件驱动,核心就是动作之间的 attach <!-- more --> ## 关键词 | 分类 | 关键词 | 说明 | | | ----- | ---------------------------- | ------------------- | --- | | 核心角色 | Observer/Subscriber | 观察者/订阅者,接收通知的一方 | | | | Subject/Observable/Publisher | 主题/被观察者/发布者,发送通知的一方 | | | | Listener | 监听器,处理特定事件的组件 | | | | Handler | 处理器,执行具体响应逻辑 | | | | Callback | 回调函数,响应事件的具体方法 | | | | Hook | 钩子,系统预留的定制化接口 | | | | Event | 事件,触发通知的动作或消息 | | | | Notification | 通知,传递给观察者的信息 | | | 动作/行为 | Subscribe/Unsubscribe | 订阅/取消订阅 | | | | Notify/Publish | 通知/发布消息 | | | | Register | 注册观察者/监听器 | | | | Dispatch | 分发事件到对应处理器 | | | | Emit | 触发/发射事件 | | | | Watch | 监视数据或状态变化 | | | | Observe | 观察目标对象变化 | | | 实现机制 | Event Bus | 事件总线,集中管理事件分发 | | | | Message Queue | 消息队列,异步事件处理 | | | | PubSub Pattern | 发布订阅模式,更松散的观察者模式变体 | | | | Event-Driven | 事件驱动架构 | | | | Dependency Injection | 依赖注入,解耦观察者和被观察者 | | | | Loose Coupling | 松耦合,降低组件间依赖 | | | 应用场景 | Event Handling | 事件处理系统 | | | | UI Events | 用户界面事件处理 | | | | State Management | 状态管理系统 | | | | Change Detection | 变更检测机制 | | | | Lifecycle Hooks | 生命周期钩子函数 | | | | DOM Events | DOM事件处理系统 | | ## 场景 polaris 读取 excel 中的数据后,希望对 excel 中的数据格式做一定的检查,如果不满足要求,就抛出异常 ## 实现 核心在于 attach 这个词,即一个动作完成,会自动传递到 attach 到它上的其他动作。我们把暴露出的可以被 attach 的一些点称为『钩子』 ![](https://cdn-a.markji.com/files/659cfceb5f8a5165c7f325fc_hd.png?e=1713366779981&token=xX63b9jqTlDOcGmctt5K9254rV0LG8hS9BmDeFBy:BgJkr8KSZ19yDDSCM-le1SeMBP8=) ![image.png|1000](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fpicgo%2Fpicgo-clipboard-images%2F2024%2F05%2F09%2F23-42-51-1b544bb69d8473e8e4fc376b467e0271-20240509234250-733716.png)