为什么使用 NGRX 而不是构造函数注入服务?

Why use NGRX instead of constructor injected services?

想知道为什么人们会对 Angular 应用程序使用 NGRX or NGXS 而不是构造函数注入服务来处理组件 IO?

是否只是为了确保组件属性引用在不切换整个 属性 值引用的情况下永远不会发生变化,还是还有更多?

替代 NGRX

根据我制定的答案:

Slice

我相信它可以完成 NgRx / NgXS 所做的一切(时间机器除外——但这很容易通过增量通知实现——已经支持)。但样板文件为零。

这是一篇展示部分功能的文章: https://medium.com/@ole.ersoy/storing-users-in-the-reactive-slice-object-store-5ea0fab06256

您将需要编写一个提供一致且易于更改的服务 api 来修改数据,您将需要想出一种快速且经过良好测试的数据查询方式,您将需要为所有数据编写和维护可观察对象。您将必须编写并建立异步调用的模式。您必须编写 api 才能访问模板中的数据。

完成后,您将得到类似于 ngrx 的东西。

对于一个简单的单一服务数据,ngrx 是矫枉过正,有很多样板文件,但对于具有多个数据源的反应式应用程序或跨众多开发人员的复杂数据交互,拥有一个使用良好的库确实很有帮助。

按照 SO 答案进行更深入的解释:

要了解何时使用哪种方法,请阅读:RxJs and Ngrx Store - When to Use a Store And Why?