2017-04-27 42 views
1

例如,我有一个实体在后端调用作业,前端调用不同的ajax来获取数据通过不同的搜索过滤器,如“jobStatus =取消”等...... 因此,我应该只在商店维护一个jobList?或维护一个列表匹配不同的Ajax? 谢谢你的帮助。react-redux:我应该维护商店数据的冗余吗?

+0

没有,但有一些例外。由于性能,很少需要保存一些冗余数据。 – Sulthan

回答

1

最好把你的REDX存储看作是一个数据库。规范你的嵌套列表,只存储每个实体一次,并在所有其他地方通过id引用它。一个好的方法是使用Normalizr库。 https://github.com/paularmstrong/normalizr

从终极版官方文档

的推荐方法在 终极版商店管理关系或嵌套的数据是把你的店的一部分,就好像它是一个 数据库,并保持这在归一化形式的数据

原因:

当一块数据是DUPL在几个地方进行冰毒,它变得更难以确保它被适当地更新。

嵌套数据 意味着相应的缩减器逻辑必须更复杂或更复杂。特别是,尝试更新深度嵌套字段 会非常快速地变得非常难看。

由于不可变的数据更新需要 在状态树中的所有祖先被复制和更新,以及和 新对象的引用会造成连接UI组件重新渲染, 更新到深度嵌套的数据对象可能迫使完全不相关 UI组件重新呈现,即使它们正在显示的数据并非 实际发生了更改。

参考:http://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html

+0

感谢您的回答〜如果我遵循这种方式,它看起来像做了两次过滤工作,因为我必须将选择器添加到我的容器中,但我已经在后端完成了此操作。 –