reactjs 如果使用redux,为什么要使用react.useContext?技术上有什么不同?[已关闭]

jhkqcmku  于 2023-02-15  发布在  React
关注(0)|答案(2)|浏览(139)
    • 已关闭**。此问题为opinion-based。当前不接受答案。
    • 想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。

2天前关闭。
这篇文章是编辑和提交审查2天前。
Improve this question
如果你已经在使用redux了,为什么还要使用react. useContext呢?我一直在努力理解react. useContext比redux有什么好处。我错过了什么吗?
我正在尝试更深入地理解react. useContext和redux。所以请解释一下为什么一个在技术上比另一个更适合某些情况。技术上的区别是什么?

e3bfsja2

e3bfsja21#

Context和Redux做的是两件不同的事情。
上下文是一种机制,它将一个单一的、很少改变的变量向下传递到树中。每当该变量被改变时,所有的消费者都会重新呈现,所以它最好用于向下传递主题或许多组件中使用的WebSocket连接等内容。它对依赖注入更有用。
另一方面,Redux是为管理普通对象(例如,WebSocket不会出现在这里)而设计的,这些对象保存数据并有效地订阅数据中的粒度更改。
因此,您可能会同时使用Context和状态管理库(也有MobX、Recoil、XState、Jotai、Zustand或Valtio等替代库),用于不同的目的。

bxfogqkk

bxfogqkk2#

React的useContext hook和Redux都是状态管理工具,但它们被设计用于处理React应用程序中的不同需求。
Redux是一个集中式存储,可以保存应用程序的整个状态,其操作和简化器管理状态更新。当您有复杂或大型状态管理需求,并且希望维护状态的单一真实来源时,它非常有用。
另一方面,useContext钩子是Redux的一个更简单的替代品,特别是当你的状态需求很小或者是局部的时候。它提供了一种方法来将数据从父组件传递到其子组件,而不必将数据作为 prop 传递到每一层。这可以使你的代码更具可读性和可维护性。
总之,您可以根据状态管理需求的复杂性和大小使用useContext或Redux,如果状态需求简单,可以使用useContext,但是如果状态需求更复杂或更大,可以使用Redux来更有效地管理它。

相关问题