如何最好地使用 Reactive State?

How best to use Reactive State?

我有一个很大的组件,我存储了关于所选项目的所有信息以及商店(ngrx)中的所有信息。 此组件中有不同的类型,我可以在它们之间切换并更改有关它们的信息(通过输入)。然后,单击保存按钮,将所有更改发送到服务器。

将更改后的数据放入存储区的最佳方式是什么?


还有一个问题,在reducer中进行计算是否正确。例如,我在商店中发送了一个元素列表,我需要为所选类型添加一个新元素。我可以通过服务完成此操作,但随后我需要提取所有元素、所选类型和更多参数,然后执行操作并将更改后的数组放回存储中。或者在具有已知数据的减速器中执行所有这些操作。 或者一般来说,将此列表保存在商店中是错误的架构方法吗?

在不知道用例的情况下很难给出正确答案,因为这完全取决于需求。

根据经验,如果状态只影响当前组件,则 ngrx 存储不是存储其数据的地方。这方面的一个例子是表单,将表单与商店中的状态同步通常是一种矫枉过正的做法。话虽这么说,如果您需要在表单上补水,保持表单和商店同步是一个很好的用例。

分派大量操作的缺点,并不是 "real" 恕我直言的缺点 - ngrx 存储(通常是 redux)旨在处理大量传入操作。

要回答第二个问题,是的,减速器是为恕我直言而设计的——我希望这里有一些逻辑。有关详细信息,请参阅 redux docs

您还可以在选择器中添加一些 "view logic",例如过滤、排序、分页...

Mike 和 Brandon 在 ng-conf 上做了一次演讲,他们解释了什么应该属于状态,什么不应该。演讲提供了有用的见解,Reducing the Boilerplate with NgRx