我们目前有一个中型 Angular 6 (prod bundle = 5MB) 应用程序,它实现了 ngrx/store 作为状态管理。
我们选择 ngrx/store 是因为当时(NG2)每个人都使用它,并且以这种方式存储状态和访问状态似乎是个好主意。换句话说:错误的原因。
它越来越像一个不需要的间接层,因为服务可以保持状态并返回流以访问应用程序状态的一部分,而样板文件要少得多(即使使用 NGXS)。
问题
从架构的角度来看,为什么我们会选择 ngrx/store 或 NGXS 而不是普通的有状态服务?
请只讨论现实世界的论点,不要理论或纯粹主义的论点。
如果处理得当,一些带有少量流的普通 @Injectable 服务会产生干净的代码、没有样板代码和状态的全部责任。即使是不变性也可以很容易地由我们自己处理。
(是的,我知道如果你让它们正常工作,比如在 HMR 中恢复状态和检查状态,会有一些技术优势,但我们从来没有得到一致且正常的工作)