与 2 个子组件通信时的 EventEmitter 与 SharedService。 Angular

EventEmitter vs SharedService when communicating 2 childrenComponents. Angular

我有一个 Angular 应用程序,其中有一个 parent 组件和两个 children 组件。其中一个 children 有一些数据,另一个 children 需要渲染,等等。我用 Observable 实现了一个共享服务,其中 children 一个更新了数据并且 children 两个使用该服务订阅了 observable,它运行良好。

但后来我和老板讨论了我的实现,他不喜欢 sharedService 实现,所以他建议我通过 parent 组件和使用 EventEmitter (@Input, @输出)和图片一样:

问题是,在我进行任何更改之前,我想知道 实施在良好实践和性能方面更好。我感谢任何帮助。

根据我的说法,在您的情况下,Observable 总是更好地进行交流。事件发射器的缺点是,如果在子组件和现有父组件之间添加新组件,则您需要再次更改代码。这不是 Observable 服务的问题。

通过 Observable 服务,您可以让您的组件在本质上更具反应性。它喜欢拉与推模型。使用 Event 发射器,您正在推动更改,而使用 Observable,它始终是一个拉动。