的 如果您仅使用Redux来避免将props传递给深层嵌套的组件 强> ,那么你可以用。替换Redux Context API。它完全适用于此用例。
Context
另一方面, 的 如果你正在使用Redux做其他事情 强> (具有可预测的状态容器,在组件之外处理应用程序的逻辑,保持状态更新历史记录,使用 Redux DevTools , Redux撤消 , Redux坚持 , Redux表格 , Redux Saga , Redux Logger 等等,那么你绝对没有理由用Red替换Redux Context API。
参考文献:
的 如果您需要将中间件用于各种目的。 强> 例如,日志记录操作,错误报告,根据其他请求调度 在服务器上的响应等 的 来自多个端点的数据会影响单个组件/视图。 强> 的 当您想要更好地控制应用程序中的操作时。 强> Redux支持跟踪操作和数据更改 大大简化了调试。 的 如果您不希望服务器响应直接更改您的应用程序的状态。 强> Redux添加了一个图层,您可以在其中决定何时,何时 如果应该应用这些数据。观察者模式。代替 在整个应用程序中创建多个发布者和订阅者 只需将组件连接到Redux商店。
从: 什么时候使用Redux?
使用Redux的唯一原因是:
您可能不需要整个应用程序的间接级别,因此可以同时混合样式并使用本地状态/上下文和Redux。
我更喜欢使用redux和redux-thunk进行API调用(也使用Axios)并将响应调度到reducers。它干净,易于理解。
Context API特别针对React组件连接到商店的react-redux部分。为此,react-redux是好的。但是如果你愿意,因为Context是官方支持的,你可以使用Context API而不是react-redux。
因此,问题应该是Context API vs react-redux,而不是Context API vs redux。此外,这个问题有点自以为是。因为,我熟悉react-redux并在所有项目中使用它,我将继续使用它。 (没有动力让我改变)。
但是如果你今天学习redux,并且你没有在任何地方使用它,那么值得给Context API一个镜头,并用你的自定义Context API代码替换react-redux。也许,它更清洁。
就个人而言,这是一个熟悉的问题。没有明确的理由选择一个而不是另一个,因为它们是等价的。而在内部,react-redux仍然使用Context。