React Context 基本上是一个迷你 redux 存储吗?

Is a React Context basically a mini redux store?

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

不难通过useContextuseReduceruseSelector)

实现react-redux的确切逻辑

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

useReducer 只是 useState.

的替代品

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

没有。 Context 和 Redux 是解决截然不同问题的截然不同的工具。

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

的值来完成的

Redux 是一个单独的 UI-agnostic 状态管理库,旨在帮助您编写可预测的状态更新逻辑并跟踪您的状态随时间更新的时间、地点、原因和方式,React-Redux UI 绑定层允许你的 React 组件与 Redux 存储交互。

现在,是的,useReducer+useContext 在组件与 Redux 交互的方式方面确实与 Redux 有一些相似之处,但就组件何时以及为何交互而言,它们也有非常不同的性能特征 re-render.

请参阅我在 A (Mostly) Complete Guide to React Rendering Behavior and my additional posts Redux - Not Dead Yet! and React, Redux, and Context Behavior 上的详尽 post,详细了解 Redux 和 Context 的区别以及