我一直在将redux用于我的所有React项目,以维护全局应用程序状态。我读到我们也可以使用钩子来管理应用程序的全局状态,而不需要redux,但是我不知道该如何使用它。这样做的任何帮助或示例都会非常有帮助。
答案 0 :(得分:1)
Hooks是一种功能编程方式,它消除了react中的类。但是,您可以查看反应上下文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
答案 1 :(得分:1)
如果要将Redux
替换为ReactHooks
,可以按照本教程进行操作:Link
Do React Hooks Replace Redux? TL; DR:钩子很棒,但不是。
自从引入React hooks API以来,关于React hooks是否将取代Redux的问题很多。
我认为ReactHooks
和Redux
之间几乎没有重叠。钩子并没有给我们带来神奇的新状态功能。相反,它增强了API的功能,使我们可以使用React进行处理。
要了解什么是redux?,什么是react hooks ,为什么首先考虑使用Redux?,请访问Here