react-redux:我应该保持商店数据多余吗?

时间:2017-04-27 03:42:47

标签: reactjs redux

例如,我在后端有一个名为jobs的实体,前端称为不同的ajax,通过不同的搜索过滤器获取数据,例如" jobStatus = Cancelled"等等... 那么我应该只在商店中保留一个jobList吗?或维持一些列表匹配不同的ajax? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

将redux商店视为数据库更好。规范化嵌套列表,仅存储每个实体一次,并在所有其他位置通过id引用它。执行此操作的好方法是使用Normalizr库。 https://github.com/paularmstrong/normalizr

来自redux官方文档:

  

管理关系数据或嵌套数据的推荐方法   Redux商店将您的商店的一部分视为一个商店   数据库,并以标准化形式保存数据

原因:

  

当一个数据在几个地方重复时,就会变成   更难确保它得到适当更新。

     

嵌套数据   意味着相应的reducer逻辑必须更嵌套或   更复杂。特别是,尝试更新深度嵌套的字段   很快就会变得非常丑陋。

     

因为不可变数据更新需要   状态树中的所有祖先也要被复制和更新,以及   新对象引用将导致连接的UI组件重新呈现,   对深度嵌套的数据对象的更新可能会强制完全不相关   即使他们显示的数据没有重新呈现的UI组件也是如此   实际上已经改变了。

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