React + Redux 用于复杂的 SaaS

React + Redux for a complex SaaS

我刚开始为我们正在开发的复杂 SaaS 使用 React + Redux 前端。

我不确定的一件事是 store(来自 redux)应该如何用于大型应用程序。我们正在开发的系统有很多表,而且数据结构非常复杂。如果我让所有 reducer 都从应用程序的每个部分放置数据,那就太多了。

我可以 enable/disable 一些减速器用于应用程序的某些部分吗?或者我应该有由不同减速器组成的不同商店吗?我在网上看到的大多数示例都非常简单,所以将所有数据始终放在 store 中就可以了。

另一个问题:为我尝试加载的页面发出所需请求的巧妙方法是什么?例如:假设我有组件 A、B 和 C,它们分别需要有关表 "users"、"movies" 和 "settings" 的信息。在一个页面中我有组件 A 和 B,在另一个页面中我有组件 B 和 C,是否有任何工具可以帮助我根据某些组件的 "requirement" 只获取我需要的数据?还是手动完成?

再说一次,我才刚刚开始学习react+redux,新手问题请见谅。

谢谢!

redux 的惯用用法是拥有一个商店,尽管如果应用程序可以拆分为单独的、不连接的部分,有些人可能会考虑单独的商店。

通常的做法是组合 reducers(我想你已经建议过了);您可以将其分层,因此一个减速器可能由多个其他减速器组成。如果以这种方式拆分,Redux 会非常高效。

我会仔细考虑你的状态;尽可能保持规范化非常重要,如果您有大量数据,优先使用对象而不是数组 在访问单个项目时也会有所帮助。

如果能保持state高度归一化,渲染时可以使用selectors导出视图数据;如果你这样做,像 reselect 这样的库会记住这些函数,再次提高性能。

这是一本好书:

http://www.thinkloop.com/article/extreme-decoupling-react-redux-selectors/