是的,我知道它已经被问了几个变种,但我对所有的答案都不满意。
关于的所有答案特点 redux 中的一个,但没有一个是必不可少的:
你能给我一个使用 redux 而不是 Angular 服务的基本/重要理由吗?
最佳答案
我认为主要标准是您的客户逻辑的复杂性。是否足够复杂,使服务过于复杂?计算某些 UI 约束所需的状态数据的不同部分之间是否存在任何复杂的依赖关系?
在某些时候,您可能会发现自己正在实现与现有 sate mgmt 库的功能类似的东西。
例如,您可能有某种向导用于设置一些监控的复杂过程,该监控通过许多不同的选项来处理传入的数据。
步骤之间可能存在依赖关系,步骤本身不需要详细了解(因此在步骤 1 中的某些操作完成之前,您无法转到步骤 2,或者步骤 3 可能取决于步骤 2 中选择的一组标志和很快)。您可能希望将所有状态创建和更新逻辑保存在一个地方(跟踪代码执行路径的能力也是一件值得记住的好事情)。
例如,您可以在此处尝试将您的状态实现为 NGXS 状态。定义人类可读的操作,将更新逻辑保存在专门为其设计的单独类中,提供从状态到组件的 observables。您不必复制负责发送更新信号的逻辑(例如,重新计算字段更改的第 2 步完成标志并通过相应的主题发送)。
一开始可能看起来也很难理解,但另一方面,下一个向导会感觉不那么难做,而且您不必为应用程序中的所有状态都这样做。
关于Angular:Redux 与服务(带有 observables),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57249141/