【发布时间】:2020-01-25 07:45:51
【问题描述】:
实际上我正在建立一个新项目,对选择流程感到困惑:
- useState + useReducer + useContext
或
- Redux
项目属于中高级项目,近期可能会导致大型应用,也可能不会。
如果我选择选项 1(useState + useReducer + useContext):
一个。还没有用于 useReducer 的中间件。由于它不是一个全局状态容器,因此很难在全局范围内应用这种中间件。 湾。 (目前)还没有将所有减速器组合成一个终极减速器的原生特性。
如果我选择选项 2,我可以使用选项 1 无法提供的功能。
我遇到了,我们可以实现我们可以在选项 1 中手动组合多个减速器:
import userReducer from './reducers/user';
import basketReducer from './reducers/basket';
const mainReducer = ({ user, basket }, action) => ({
user: userReducer(user, action),
basket: basketReducer(basket, action)
});
也可以实现中间件
import userReducer from './reducers/user';
import basketReducer from './reducers/basket';
const mainReducer = ({ user, basket }, action) => {
// middleware goes here, i.e calling analytics service, etc.
return {
user: userReducer(user, action),
basket: basketReducer(basket, action)
};
});
实际上,我在这里冻结选择哪种方式是最佳选择?
如果我要使用 Redux,我必须实现 Redux、axios、saga、不可变 js 或其他第三方库。 我将使用 Redux 的强大功能,并且我应该首先学习 Redux 的所有概念。因为我知道 Context + hooks。
react 官方是否有计划将那些遗漏的成分从 Redux 带到 hooks + context 中?
【问题讨论】:
-
通常这取决于许多因素)
标签: javascript reactjs