例如,我在后端有一个名为jobs的实体,前端称为不同的ajax,通过不同的搜索过滤器获取数据,例如" jobStatus = Cancelled"等等... 那么我应该只在商店中保留一个jobList吗?或维持一些列表匹配不同的ajax? 谢谢你的帮助。
答案 0 :(得分:1)
将redux商店视为数据库更好。规范化嵌套列表,仅存储每个实体一次,并在所有其他位置通过id引用它。执行此操作的好方法是使用Normalizr库。 https://github.com/paularmstrong/normalizr
来自redux官方文档:
管理关系数据或嵌套数据的推荐方法 Redux商店将您的商店的一部分视为一个商店 数据库,并以标准化形式保存数据
原因:
当一个数据在几个地方重复时,就会变成 更难确保它得到适当更新。
嵌套数据 意味着相应的reducer逻辑必须更嵌套或 更复杂。特别是,尝试更新深度嵌套的字段 很快就会变得非常丑陋。
因为不可变数据更新需要 状态树中的所有祖先也要被复制和更新,以及 新对象引用将导致连接的UI组件重新呈现, 对深度嵌套的数据对象的更新可能会强制完全不相关 即使他们显示的数据没有重新呈现的UI组件也是如此 实际上已经改变了。
参考:http://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html