写道:
在Redux中,所有应用程序状态都存储为单个对象。
这就开始了我的问题。 我正在编写一个应用程序来管理 SPA (React + Redux)中很多数据的少数实体,而且有些事情让我对使用Redux感兴趣并得到一些由于我需要管理的数据量,所以会出现滞后现象。
我不相信将所有应用程序状态转移到Redux上会很好,因为在某种程度上,它可能消耗大量内存,但我可能错了。
Redux看起来(对我来说)同时如此简单和混乱,如果我应该或不应该使用它,我不会,但是,应用程序将会增长很多,我确信这将有助于我保持项目的组织。
让我害怕的另一件事是在更新状态发生时渲染DOM元素。它与在 React 上使用 setState()不同,正如我们在Dan Abramov的Redux视频中看到的那样,他正在使用 forceUpdate 强烈>在React docs中不推荐使用。
是否可以管理不同商店中的实体,但只在必要时将它们放在一起?
如果将所有应用程序状态存储在单个商店对象中,是否会占用大量内存?
使用Redux渲染React组件的最佳方法是什么?
答案 0 :(得分:3)
你肯定有几个不同的问题,而你 过度思考的事情:)
首先,在客户端缓存数据在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和相关主题的高质量教程和文章的链接列表。特别是对于任何想要学习生态系统的人来说都是一个很好的起点,也是有关更高级主题的良好信息的坚实来源。