由于 Redux 提供store
将所有应用程序数据保存在一个地方,将数据保存在单个大文件中是一种好习惯object
吗?如果我们有数千条记录并且它们的数据很大,那会不会影响应用程序的性能呢?
将庞大的数据对象保存在 Redux 的单个存储中是个好主意吗?
IT技术
reactjs
redux
react-router
react-redux
redux-thunk
2021-05-28 13:09:49
2个回答
这是开始Redux Performance的好地方
为了在 React 应用程序中获得最大的渲染性能,状态应该以标准化的形状存储,许多单独的组件应该连接到存储而不是几个,并且连接的列表组件应该将项目 ID 传递给它们连接的子列表项目(允许列表项以通过 ID 查找自己的数据)。这最大限度地减少了要完成的渲染的总量。使用记忆化选择器函数也是一个重要的性能考虑因素。
关于Redux 中的大状态对象
不变地更新状态通常意味着制作浅拷贝,而不是深拷贝。浅拷贝比深拷贝快得多,因为需要复制的对象和字段更少,而且它有效地归结为移动一些指针。
但是,您确实需要为受影响的每个嵌套级别创建一个复制和更新的对象。尽管这不应该特别昂贵,但这是您应该尽可能保持状态正常化和浅层的另一个很好的理由。
正如@MatanHafuta 所提到的,状态对象的外观非常重要。
您可以使用像normalizr这样的包 来规范化具有深度嵌套对象的 JSON 数据。
这其实并不重要,最终你持有相同的数据,只要确保组织在某种程度上,它会很容易与您的数据快速检索和操作,这不是数据的量,但您组织数据的方式高效的方式,还要考虑reducer中状态更新的容易程度,逻辑划分是写代码之前要考虑的事情。