我正在将 ReactJs 与 Redux 结合使用,在一些教程和代码中,我看到人们建议并使用 normalizr 来保持状态平坦。但保持平坦的真正优势是什么?如果不这样做我会遇到任何问题吗?有必要吗?
最佳答案
三个主要原因:
- 一成不变地更新嵌套 Javascript 对象通常会导致代码变得更丑陋,更难以维护,除非您使用实用程序库来结束该过程
- 永久更新嵌套数据要求您返回嵌套层次结构中所有项目的新副本。由于组件通常会对数据进行浅层相等引用比较以查看是否需要更新,因此更新嵌套数据通常意味着更新更多对象,并且即使实际数据没有不同,也可能需要重新渲染更多组件。
- 平面数据,特别是规范化数据,可以实现一些更优化的组件定义方法(例如每个列表项组件本身连接的列表,给定项目 ID 作为属性,并负责查找自己的组件)该 ID 的项目数据)
关于reactjs - 为什么我应该保持状态平坦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38842454/