reactjs - 为什么我应该保持状态平坦

标签 reactjs redux flux normalizr

我正在将 ReactJs 与 Redux 结合使用,在一些教程和代码中,我看到人们建议并使用 normalizr 来保持状态平坦。但保持平坦的真正优势是什么?如果不这样做我会遇到任何问题吗?有必要吗?

最佳答案

三个主要原因:

  • 一成不变地更新嵌套 Javascript 对象通常会导致代码变得更丑陋,更难以维护,除非您使用实用程序库来结束该过程
  • 永久更新嵌套数据要求您返回嵌套层次结构中所有项目的新副本。由于组件通常会对数据进行浅层相等引用比较以查看是否需要更新,因此更新嵌套数据通常意味着更新更多对象,并且即使实际数据没有不同,也可能需要重新渲染更多组件。
  • 平面数据,特别是规范化数据,可以实现一些更优化的组件定义方法(例如每个列表项组件本身连接的列表,给定项目 ID 作为属性,并负责查找自己的组件)该 ID 的项目数据)

关于reactjs - 为什么我应该保持状态平坦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38842454/

相关文章:

javascript - 在 Redux 中映射对象数组数据

javascript - React js 中的 Bootstrap 模式不起作用

javascript - 存储来自 reducer props 的数据

javascript - 在 React Flux 上,我应该在哪里填充商店的初始状态?

reactjs - React Flux - 在渲染子组件之前等待 Prop

javascript - ReactJS 在 JavaScript 中使用 Web 组件

javascript - 如何在启动时使用异步存储数据渲染 React Native 组件?

javascript - 商店更改时更新组件

Javascript函数Arguments对象神奇变成当前webpack模块?

javascript - 如何在flux中创建通用组件?