发布于 2026-01-06 1 阅读
0

最佳搭档:useContext + useReducer!

最佳搭档:useContext + useReducer!

免责声明:

这将是你寻找useContext + useReducer hooks 时所见过的最好的文章之一!

为什么要同时使用 useContext 和 userducer?

原因:为了在组件之间共享状态,即全局状态
管理

在之前的文章中,我们已经了解了如何使用 useContext 和 useReducer hooks。

所以,在这篇文章中,我们将看看如何将它们结合起来使用!

替代文字

在这个例子中,我们将在组件 A、组件 D 和组件 F 之间共享计数器的状态!

此外,我们示例中的组件层次结构如下:

1)组件 A
2)组件 B -> 组件 D
3)组件 C -> 组件 E -> 组件 F

步骤:

1.)在主目录中创建React 上下文成分

2.) 在主函数中创建 reducer 函数成分

3.) 使用 useReducer 函数。

4.) 使用上下文提供程序发送上下文值

5.) 使用useContext钩子来使用上下文值。

6. 使用调度将操作从组件传递出去。

好了,我们开始吧!

步骤1:创建React 上下文reducer()函数:

替代文字

步骤2:在函数式组件中,调用useReducer(reducer,initialState) hook:

替代文字

在这里,您可以看到我们已经将状态(即计数器)分发方法作为值传递给了上下文提供程序。

步骤 3:现在,为了访问组件 A、组件 D 和组件 F 中的全局状态,我们需要使用 useContext Hook 来使用 Context Provider 传递的上下文

(组件 A)
替代文字

(组件 D)
替代文字

(组件 F)
替代文字

步骤 4:为了通过组件 A、D 和 F 改变全局状态,我们通过调度函数传递了操作(即增加、减少或重置)

这就是使用useReducer 和 useContext hook管理全局状态所需的一切!

希望对您有所帮助!

欢迎分享您的想法!

祝您编程愉快,谢谢!

-Jayant Khandelwal

文章来源:https://dev.to/jackent2b/the-best- Couple-usecontext-usereducer-4e65