Angular 2:有没有事件聚合器?

Angular 2: Is there an eventaggregator?

我需要一个中央单例 Angular 2 事件聚合器来进行交叉 component/module 通信。

是否有 Angular 2 (7.3.6) 的事件聚合器,即 "ready-to-go" 并且可以使用 npm 安装?

我见过很少的自定义实现,但找不到用于此目的的任何 "official" 或 "widely accepted" 节点模块。

我知道并在项目中使用过两种类型的实现。根据您的要求,两者都可能满足您的要求:

NGX 消息总线

一个基本的 "bus" 样式库,可以在组件之间或整个应用程序之间交换消息/事件。

https://www.npmjs.com/package/ngx-message-bus

基于 Redux 的通信/状态管理

根据您的应用程序的规模(阅读:如果它相当大),您可能对像 NGRX, NGXS or Akita 这样的 Redux 风格的库感兴趣。严格来说,这些库不是纯粹的消息系统,而是状态管理项目。 Redux 有很多优点(不可变状态、可追踪操作和状态更改)但通常也有学习曲线。