动态 redux 应用程序加载与商店组合和 combineReducers
dynamic redux app loading vs store composition and combineReducers
假设我有一个用 react/redux 编写的非常大的应用程序,我将应用程序拆分为模块、webpack 导入语句等。
我需要为给定的生产构建提供一个设置,我选择哪些模块应该包含在 dist 中(其余部分被忽略)。例如,我有模块 A、B、C、D。一个客户支付了模块 A 和 B,他得到的就是这个,另一个客户支付了所有模块的费用,得到了 A、B、C、D。这就是应该的捆绑,当然有一个一致的代码库。
在 webpack 级别我只是生成一个新的入口点,它将包括我想要的(AST 级别)模块(import moduleA
,import moduleB
)...但是现在问题来了关于 redux store 和 combineReducers
.
有什么方法可以动态地将片段添加到 combineReducers
调用中吗?我能想到的唯一方法是手动生成根减速器,导入模块减速器。但也许有更好的方法来做到这一点?
动态添加slice reducer的标准做法是再次调用combineReducers
,传入你现在想要的所有reducer,然后调用store.replaceReducer(newRootReducer)
.
react-boilerplate project has an example of this. See their utility function injectAsyncReducer
。
假设我有一个用 react/redux 编写的非常大的应用程序,我将应用程序拆分为模块、webpack 导入语句等。
我需要为给定的生产构建提供一个设置,我选择哪些模块应该包含在 dist 中(其余部分被忽略)。例如,我有模块 A、B、C、D。一个客户支付了模块 A 和 B,他得到的就是这个,另一个客户支付了所有模块的费用,得到了 A、B、C、D。这就是应该的捆绑,当然有一个一致的代码库。
在 webpack 级别我只是生成一个新的入口点,它将包括我想要的(AST 级别)模块(import moduleA
,import moduleB
)...但是现在问题来了关于 redux store 和 combineReducers
.
有什么方法可以动态地将片段添加到 combineReducers
调用中吗?我能想到的唯一方法是手动生成根减速器,导入模块减速器。但也许有更好的方法来做到这一点?
动态添加slice reducer的标准做法是再次调用combineReducers
,传入你现在想要的所有reducer,然后调用store.replaceReducer(newRootReducer)
.
react-boilerplate project has an example of this. See their utility function injectAsyncReducer
。