【问题标题】:Redux and ALL the application stateRedux 和所有应用程序状态
【发布时间】:2017-02-27 15:29:41
【问题描述】:

在 Redux 文档中是这样写的:

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

这开始了我的问题。 我正在编写一个应用程序,它将在 SPA (React + Redux) 中管理具有 许多 数据的少数实体,而我在使用 Redux 并获得某种滞后是因为我需要管理的数据量。

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

Redux 看起来(对我来说)既简单又令人困惑,我不应该或不应该使用它,但是,应用程序会增长很多,我确信它会有所帮助我也要维护项目的组织性。

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

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

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

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

【问题讨论】:

  • 那么你在这里问了多少问题?恐怕这可能不适合 StackOverflow。你试过chat吗?
  • 谢谢@Pavlo,我相信聊天真的是最好的方式。谢谢

标签: reactjs redux react-redux


【解决方案1】:

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

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

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

其次,不要将 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。你可能想通读一遍。我也鼓励你彻底read through the Redux docs

此外,我在https://github.com/markerikson/react-redux-links 上保留了大量关于 React、Redux 和相关主题的高质量教程和文章的链接。专门用于为任何尝试学习生态系统的人提供一个很好的起点,同时也是有关更高级主题的良好信息的可靠来源。

【讨论】:

    猜你喜欢
    • 2017-01-15
    • 1970-01-01
    • 2018-05-13
    • 2022-06-14
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2016-05-04
    相关资源
    最近更新 更多