3

使用 React 和 Flux 时,标准做法是从操作进行 API 调用,然后将结果数据存储在 Store 类中。但是谁应该负责在数据存储后转换数据呢?

示例:我有一个EntryStore保存代表购物清单项目的对象。我有许多过滤器可以应用于它们(例如“仅显示dairy”)。我目前通过调用 来进行此工作EntryActions.filterEntries('dairy'),然后调度程序将其传递到EntryStore方法_filterEntries(tag)转换EntryStore._entries数组的位置。这被认为是最佳实践吗?动作本身是否应该转换条目列表,然后将其传递EntryStore给简单的保存?在这种情况下,商店应该有多愚蠢?

4

1 回答 1

3

是的,你是对的!在 Flux 中,我们希望保持数据结构平坦,并让任何数据操作都发生在 Store 本身中。数据流本质上是:

Component --> (actions) --> Dispatcher --> (callback) ---> Stores -----+
Ʌ                                                                      |
|                                                                      V
+-- ("change" event handlers) --------------------- (change events) ---+

必须通过从视图/组件调用操作来更改数据。数据存储侦听这些操作并改变存储中的数据(包括过滤以及您可能需要的任何其他数据突变或逻辑)

于 2014-10-22T05:58:49.960 回答