我是Redux
的新手,但我非常喜欢。这家单店非常适合SPA。但我对现实世界的大应用提出了一个问题。
例如,如果有会员管理应用程序。我们有登录页面,会员管理页面和会计页面。我应该每页有3 states
吗?如果我还有一个state
,我担心的是state
将是巨大的。
每页应该有3个容器吗?如果我们需要一个新页面,例如AddMember页面。我应该添加一个新容器吗?
我应该从每个容器state
方法的unmounted
树中删除数据吗?
我查看了源代码中提供的示例。其中大部分仅适用于小型SPA。是否有一个很大的应用程序支架?
答案 0 :(得分:2)
减少者和州
Redux中只有一个状态。但是您可以轻松地将其分解为具有减速器的较小子状态。假设您有一个名为reducers /的文件index.js,它可能如下所示:
import { combineReducers } from 'redux';
import login from './login';
import member from './member';
import accounting from './accounting';
const rootReducer = combineReducers({
login,
member,
accounting
});
export default rootReducer;
文件login.js,member.js和accounting.js将拥有自己的reducer函数,只需知道自己的状态。
你如何将你的状态分解为单独的减速器取决于你。这只是一个建议。如果页面具有大量重叠状态,则以这种方式执行此操作可能不合适。
我建议在这里阅读减压器。 http://rackt.org/redux/docs/basics/Reducers.html
容器(或智能组件)
当你问多少个容器时,我认为你的意思是智能组件。也就是说,连接到Redux的React组件。作为一个起点,我建议只连接你的根组件,并通过道具传递(部分)状态。
但是,如果您使用的是React路由器,则需要连接每个路由处理程序,每个路由处理程序都会自己处理状态。
有关连接的更多信息,请参阅react-redux文档。 https://github.com/rackt/react-redux/blob/master/docs/quick-start.md#quick-start