Redux 和所有应用程序状态

问题描述 投票:0回答:1

Redux 文档中这样写:

在 Redux 中,所有应用程序状态都存储为单个对象。

这就是我的问题所在。 我正在编写一个应用程序,该应用程序将管理 SPA(React + Redux)中具有许多数据的几个实体,并且我在使用 Redux 时遇到了一些问题,并且会出现某种滞后,因为我要处理的数据量很大需要管理。

我不认为通过 Redux 传输所有应用程序状态会很好,因为在某种程度上,它可能会消耗大量内存,但我可能是错的。

Redux 看起来(对我来说)如此简单,同时又如此令人困惑,我不知道我是否应该使用它,但是,应用程序将会增长很多,我确信它将帮助我保持项目井井有条。

另一件事让我害怕的是当更新状态发生时渲染 DOM 元素。这与在 React 上使用 setState() 不同,正如我们在 Dan Abramov 的 Redux 视频中看到的,他使用的是 forceUpdate,这在 React 文档中是不推荐的。

是否可以管理不同商店的实体,但在需要时将它们放在一起?

如果将所有应用程序状态存储在单个存储对象中会消耗大量内存吗?

使用 Redux 渲染 React 组件的最佳方式是什么?

reactjs redux react-redux
1个回答
3
投票

你肯定有几个不同的问题,而且你想得太多了:)

首先,Redux 中客户端缓存数据与任何其他 Javascript 框架没有什么不同。事实上,使用 Redux 缓存数据可能会比使用 Backbone 之类的东西占用更少的内存,因为 Redux 应用程序将存储纯 JS 对象和数组,而不是将数据包装在模型类实例中。在多个商店之间拆分数据以及将其全部合并到一个商店中的单个状态树中,在大小方面也没有差异。

现在,缓存多少数据取决于您,但实际上,随着时间的推移,您可以轻松地将数万条记录加载到客户端应用程序中,而不会出现问题。

其次,不要将 Dan 在这些视频中展示的小示例与 React-Redux 库的实际工作原理混淆。 Dan 试图说明一些基本想法,而不是展示生产级代码。如果有帮助的话,他实际上编写了

connect

微型版本,展示了 connect
 实际用途的基本思想。同时,真正的 React-Redux 库是高度优化的(并且一旦知道数据确实发生了变化,就会在内部实际使用 
setState
)。

最后,虽然您

可以创建多个商店,但出于多种原因,Redux 常见问题解答建议仅使用一个商店

我最近发布了一个

演示文稿,介绍了 React 和 Redux 的基础知识。您可能想通读一下。我还鼓励您彻底阅读 Redux 文档

此外,我还在

https://github.com/markerikson/react-redux-links 保留了一份关于 React、Redux 和相关主题的高质量教程和文章的链接列表。特别旨在成为任何尝试学习生态系统的人的一个很好的起点,以及有关更高级主题的良好信息的可靠来源。

© www.soinside.com 2019 - 2024. All rights reserved.