将大型数据对象保存在Redux的单个存储中是一个好主意吗?

时间:2018-03-31 09:24:08

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

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

2 个答案:

答案 0 :(得分:2)

这是一个很好的起点 Redux Performance

  

为了在React应用程序中获得最大的渲染性能,状态应该以标准化的形式存储,许多单个组件应该连接到商店而不是仅仅几个,并且连接的列表组件应该通过项目已连接子列表项的ID(允许列表项按ID查找自己的数据)。这最大限度地减少了要完成的渲染总量。使用memoized选择器功能也是一个重要的性能考虑因素。

关于Redux

中的大型州对象
  

不可更新的状态通常意味着制作浅拷贝,而不是深拷贝。浅拷贝比深拷贝快得多,因为必须复制更少的对象和字段,并且它有效地归结为移动一些指针。

     

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

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

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

答案 1 :(得分:1)

这无关紧要,最终你持有相同的数据,只需确保以一种容易且快速来检索和操作的方式整理数据,这不是数量数据,但你以有效的方式组织数据的方式,也考虑在reducers中更新状态的简易性,在编写代码之前需要考虑逻辑划分。