React 16.3.0已发布,并且Context API不再是实验功能。Dan Abramov(Redux的创建者)在这里对此发表了很好的评论,但是Context仍然是实验性功能已经有两年了。
我的问题是,根据您的看法/经验,何时应该在React Redux上使用React Context,反之亦然?
React 16.3.0已发布,并且Context API不再是实验功能。Dan Abramov(Redux的创建者)在这里对此发表了很好的评论,但是Context仍然是实验性功能已经有两年了。
我的问题是,根据您的看法/经验,何时应该在React Redux上使用React Context,反之亦然?
如果仅在使用Redux以避免将props传递到深度嵌套的组件中,则可以使用Context
API 替换Redux 。正是针对此用例。
另一方面,如果您将Redux用于其他所有功能(具有可预测的状态容器,在组件外部处理应用程序的逻辑,集中应用程序的状态,使用Redux DevTools来跟踪何时,何地,原因以及应用程序的状态更改,或使用诸如Redux Form,Redux Saga,Redux Undo,Redux Persist,Redux Logger等之类的插件),那么您绝对没有理由放弃Redux。该Context
API不提供任何这一点。
我个人认为Redux DevTools扩展是一个了不起的,被低估的调试工具,它本身证明继续使用Redux是合理的。
一些参考:
我更喜欢将redux与redux-thunk一起使用来进行API调用(也使用Axios)并将响应分配给reducer。它很干净而且易于理解。
上下文API专门针对react-redux部分,介绍如何将React组件连接到商店。为此,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。
对我使用Redux的唯一原因是:
您可能不需要整个应用程序的间接级别,因此可以混合使用样式,并同时使用本地状态/上下文和Redux。
来自:何时使用Redux?