0

这个问题没有实际目的,只是尝试连接概念以让我了解从 Redux 切换到 usinguseReducer和 React 上下文 - 与 useReducer 一起使用时的 Context 基本上是一个仅可用于显式导入它的组件的 redux 存储?

4

2 回答 2

2

不。Context 和 Redux 是非常不同的工具,它们解决的问题非常不同。

上下文只是一种使组件树的一部分可以访问单个值的机制。您可以编写代码来确定该值是什么以及如何更新它。这通常通过将数据存储在 React 组件状态中并创建一个传递给<MyContext.Provider>.

Redux 是一个独立的与 UI 无关的状态管理库,旨在帮助您编写可预测的状态更新逻辑并跟踪您的状态何时、何地、为什么以及如何随着时间的推移而更新,React-Redux UI 绑定层允许您的 React 组件与那个 Redux store 交互。

现在,是的,useReducer+useContext在组件如何与 Redux 交互方面确实与 Redux 有一些相似之处,但它们在组件重新渲染的时间和原因方面也有非常不同的性能特征。

请参阅我关于React 渲染行为的(主要)完整指南的大量帖子以及我的附加帖子Redux - 还没有死!React、Redux 和 Context Behavior详细了解 Redux 和 Context 的区别以及如何

于 2020-08-03T18:04:44.113 回答
0

通过useContext,useReducer也许useSelector)来实现 react-redux 的确切逻辑并不难

但是useContext+useReducer并不是 Redux 的完全替代品。

useReducer只是useState.

useContext附带https://en.reactjs.org/docs/context.html#caveats 要存储多个值,您必须https://en.reactjs.org/docs/context.html#sumption-multiple-contexts

于 2020-08-03T17:23:57.053 回答