Redux 和所有应用程序状态
Redux and ALL the application state
在Redux文档中是这样写的:
In Redux, all the application state is stored as a single object.
这就是我的问题。
我正在编写一个应用程序,该应用程序将在 SPA(React + Redux)中使用 many 数据管理少数实体,并且我在使用时遇到了一些问题Redux 并由于我需要管理的数据量而出现某种滞后。
我不认为通过 Redux 传输所有应用程序状态会很好,因为在某种程度上,它可能会消耗大量内存,但我可能是错的。
Redux 看起来(对我来说)如此简单,同时又如此令人困惑,如果我应该或不应该使用它,我不知道,但是,应用程序会增长很多,我确信它也会帮助我保持项目井井有条。
另一件让我害怕的事情是在发生更新状态时渲染 DOM 元素。它与在 React 上使用 setState() 不同,正如我们在 Dan Abramov 的 Redux 视频中看到的那样,他使用的是 forceUpdate React 文档中不推荐这样做。
是否可以管理不同商店中的实体,但在需要时将它们放在一起?
如果将所有应用程序状态存储在一个存储对象中,是否会消耗大量内存?
使用 Redux 渲染 React 组件的最佳方式是什么?
你肯定有几个不同的问题,而且你想多了:)
首先,在客户端缓存数据在 Redux 中与任何其他 Javascript 框架没有什么不同。事实上,使用 Redux 缓存数据可能会比使用 Backbone 之类的缓存占用更少的内存,因为 Redux 应用程序将存储纯 JS 对象和数组,而不是将数据包装在模型 class 实例中。在多个商店之间拆分数据和将其全部组合到一个商店中的单个状态树之间在大小方面也没有区别。
现在,缓存多少数据由您决定,但实际上,随着时间的推移,您可以轻松地将数万条记录加载到客户端应用程序中而不会出现问题。
其次,不要将 Dan 在这些视频中展示的小示例与 React-Redux 库的实际工作原理混淆。 Dan 试图说明一些基本思想,而不是展示生产级代码。如果有帮助,他实际上写了一个 miniature version of connect
来展示 connect
实际作用的基本思想。同时,真正的 React-Redux 库是高度优化的(一旦知道数据确实发生了变化,就会在内部实际使用 setState
)。
最后,虽然您 可以 创建多个商店,但 Redux FAQ advises to only use one store 出于多种原因。
最近发了一篇presentation that introduces the basics of React and Redux. You might want to read through that. I'd also encourage you to read through the Redux docs透彻
此外,我在 https://github.com/markerikson/react-redux-links 保留了一个很大的链接列表,这些链接指向关于 React、Redux 和相关主题的高质量教程和文章。专门为任何试图了解生态系统的人提供一个很好的起点,同时也是有关更高级主题的良好信息的可靠来源。
在Redux文档中是这样写的:
In Redux, all the application state is stored as a single object.
这就是我的问题。 我正在编写一个应用程序,该应用程序将在 SPA(React + Redux)中使用 many 数据管理少数实体,并且我在使用时遇到了一些问题Redux 并由于我需要管理的数据量而出现某种滞后。
我不认为通过 Redux 传输所有应用程序状态会很好,因为在某种程度上,它可能会消耗大量内存,但我可能是错的。
Redux 看起来(对我来说)如此简单,同时又如此令人困惑,如果我应该或不应该使用它,我不知道,但是,应用程序会增长很多,我确信它也会帮助我保持项目井井有条。
另一件让我害怕的事情是在发生更新状态时渲染 DOM 元素。它与在 React 上使用 setState() 不同,正如我们在 Dan Abramov 的 Redux 视频中看到的那样,他使用的是 forceUpdate React 文档中不推荐这样做。
是否可以管理不同商店中的实体,但在需要时将它们放在一起?
如果将所有应用程序状态存储在一个存储对象中,是否会消耗大量内存?
使用 Redux 渲染 React 组件的最佳方式是什么?
你肯定有几个不同的问题,而且你想多了:)
首先,在客户端缓存数据在 Redux 中与任何其他 Javascript 框架没有什么不同。事实上,使用 Redux 缓存数据可能会比使用 Backbone 之类的缓存占用更少的内存,因为 Redux 应用程序将存储纯 JS 对象和数组,而不是将数据包装在模型 class 实例中。在多个商店之间拆分数据和将其全部组合到一个商店中的单个状态树之间在大小方面也没有区别。
现在,缓存多少数据由您决定,但实际上,随着时间的推移,您可以轻松地将数万条记录加载到客户端应用程序中而不会出现问题。
其次,不要将 Dan 在这些视频中展示的小示例与 React-Redux 库的实际工作原理混淆。 Dan 试图说明一些基本思想,而不是展示生产级代码。如果有帮助,他实际上写了一个 miniature version of connect
来展示 connect
实际作用的基本思想。同时,真正的 React-Redux 库是高度优化的(一旦知道数据确实发生了变化,就会在内部实际使用 setState
)。
最后,虽然您 可以 创建多个商店,但 Redux FAQ advises to only use one store 出于多种原因。
最近发了一篇presentation that introduces the basics of React and Redux. You might want to read through that. I'd also encourage you to read through the Redux docs透彻
此外,我在 https://github.com/markerikson/react-redux-links 保留了一个很大的链接列表,这些链接指向关于 React、Redux 和相关主题的高质量教程和文章。专门为任何试图了解生态系统的人提供一个很好的起点,同时也是有关更高级主题的良好信息的可靠来源。