【问题标题】:Is it a good idea to keep huge data object in a single store of Redux?将庞大的数据对象保存在 Redux 的单个存储中是个好主意吗?
【发布时间】:2018-09-10 04:36:41
【问题描述】:

由于 Redux 提供 store 用于将所有应用程序数据保存在一个位置,将数据保存在单个大 object 中是否是一种好习惯?如果我们有数千条记录及其数据量很大,会影响应用程序的性能吗?

【问题讨论】:

标签: reactjs redux react-router react-redux redux-thunk


【解决方案1】:

这是一个很好的起点 Redux Performance

为了在 React 应用程序中获得最大的渲染性能,状态应该以规范化的形状存储,许多单独的组件应该连接到存储而不是仅仅几个,连接列表组件应该传递 item连接的子列表项的 ID(允许列表项通过 ID 查找自己的数据)。这最大限度地减少了要完成的渲染总量。使用记忆选择器函数也是一个重要的性能考虑因素。

关于Redux中的大状态对象

不可变的更新状态通常意味着制作浅拷贝,而不是深拷贝。浅拷贝比深拷贝快得多,因为需要复制的对象和字段更少,而且它实际上归结为移动一些指针。

但是,您确实需要为受影响的每个嵌套级别创建一个复制和更新的对象。虽然这不应该特别昂贵,但这是您应该尽可能保持状态正常化和浅层的另一个很好的理由。

正如@MatanHafuta 所说,状态对象的外观非常重要。

您可以使用像 normalizr 这样的包来规范化具有深度嵌套对象的 JSON 数据。

【讨论】:

    【解决方案2】:

    这真的没关系,最终你拥有相同的数据,只要确保以一种易于检索和快速检索和操作的方式组织你的数据,而不是数量数据,但您以有效的方式组织数据的方式,还要考虑在 reducer 中更新状态的便利性,逻辑划分是在编写代码之前要考虑的事情。

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 1970-01-01
      • 2015-09-30
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多