我正在尝试制作一个基本的交易跟踪应用程序,并有一个跟踪交易的服务。我有一个保存事务的 BehaviorSubject,当组件请求事务时,它们会被赋予行为主体的可观察量。
我现在正在尝试这样做,以便组件可以编辑事务,并让服务在编辑发生时将更改同步回服务器。解决这个问题的最佳方法是什么?我是否以某种方式锁定了行为主体持有的值并要求编辑通过 setter 传递?我是否只将事务的副本传递给组件?我是否相信组件不会在不"告诉"服务的情况下进行编辑?
我现在所做的是让组件能够编辑事务,并且服务每 10 秒检查一次,以查看事务列表是否与原始同步版本不同,然后将差异发送到服务器。这似乎不对。
实际上,我真的不认为每当这些话题浮出水面时,人们应该直接跳到Redux
。
无论您想要实现什么,您仍然可以在当前服务中实现它。您应该做的是仅通过您的服务锁定编辑。并使您的组件侦听您的服务发布的BehaviorSubject
。
您不能直接在组件中更改记录,因为您在那里获得的副本应该是只读副本。这本质上是Redux
希望你做的,不同之处在于Redux
不需要你有一个额外的服务层。
看看我已经开始研究的一个名为 RxCache 的库。我写它是为了回应我对当前Redux商店风格方法的厌恶,这种方法正在感染我们美丽的Angular世界。它为您提供了推送数据方法,没有任何荒谬的样板和 ngrx 开销。
https://github.com/adriandavidbrand/ngx-rxcache
我建议你使用像ngrx这样的状态管理工具。使用存储和效果。它将使您能够了解状态如何变化以及何时可以通过效果进行服务调用。
另请查看本文,了解角度状态管理。你也可以在谷歌上做一些发现。
你会遇到ngrx(redux + rxjs(和redux作为在angular中管理状态的最常见工具。