我刚刚将Immutable.js整合到一个小的React/Redux + Typescript项目中,由于输入问题,我真的不确定这是不是可行的方法。我想听听更有经验的程序员的意见。
Immutable.js的明显好处是它使您的状态为您保持不变。
缺点是绝对不需要打字。getIn和setIn是您与数据交互的主要方式,尤其是与商店的数据交互。嵌套得越多,就会变得越痛苦和危险。此外,更改存储结构不会再产生任何错误--您将留下大量分散在整个项目中的setIn,您需要找到并修复其中的每一个。重构变得极其危险。
我听过很多人对Immutable.js赞不绝口,但真的值得为缺少输入而付出所有的痛苦吗?
其他的解决方案是什么?为什么我会/不会使用某种类型的库来深度克隆每个reducer开始时的状态?
发布于 2019-11-28 23:12:03
我不喜欢复杂的嵌套Redux状态。
在这里,您可以找到一篇描述如何规范化数据结构的文章:https://redux.js.org/recipes/structuring-reducers/normalizing-state-shape
请注意以下解释:
注意到数据的结构有点复杂,有些数据是重复的。这是一个令人担忧的问题,原因有几个:
..。
因此,在Redux存储中管理关系数据或嵌套数据的推荐方法是将存储的一部分视为数据库,并以规范化的形式保留该数据。
https://stackoverflow.com/questions/59091303
复制相似问题