我一直在我所有的 react 项目中使用 redux 来维护应用程序的全局状态。我读到我们也可以使用钩子管理应用程序的全局状态,而无需 redux,但我无法弄清楚如何使用它。任何帮助或示例都会非常有帮助。
Hooks 是一种函数式编程方式,可以在 react 中取消类。但是,您可以查看React Context API。它允许以反应方式进行全局状态管理。
请注意,Recat Context 不能替代 Redux。它们都是相辅相成的,redux 也使用此上下文。
const UserContext = React.createContext(null) ;
//默认值
获得该值后,您可以在其中存储任何对象或函数。 因此,在根目录或应用程序上,创建一个正常的全局状态。
const [user, setUser] = useState()
<UserContext.Provider value={{user, setUser}}>
<ComponentA />
<UserContext.Provider>
现在,用户和用户方式在整个应用程序中进行全局管理。
现在你可以使用,const {user, setUser} = useContext(UserContext)
.
调用 setUser 时,您现在正在更新全局状态。请继续阅读以了解何时使用。 https://reactjs.org/docs/context.html#before-you-use-context
如果要将Redux
替换为ReactHooks
,可以按照本教程进行操作: 链接
React 钩子会取代 Redux 吗? TL;大卫:钩子很棒,但没有。
自从 React 钩子API 被引入以来,关于 React 钩子是否会取代 Redux 的问题已经出现了很多。
在我看来,ReactHooks
和Redux
之间几乎没有重叠。Hooks 并没有给我们带来神奇的新状态能力。相反,它增强了我们已经可以用 React 做的事情的 API。
要了解什么是redux?,什么是 react hooks?,为什么我们首先会考虑 Redux?,请访问这里