【发布时间】:2020-06-23 00:21:40
【问题描述】:
我正在通过 video 探索 useContext 反应钩子
在这个视频中,他们所做的基本上是创建一个上下文
context.js
import { createContext } from "react";
export const CustomerContext = createContext(null);
并将这些上下文传递给子组件
import Table from "./components/table";
import React, { useState } from "react";
import { CustomerContext } from "./context";
const App = () => {
const [user, setUser] = useState(null);
return (
<div>
<p> Hello World</p>
<CustomerContext.Provider value={{ user, setUser }}>
<Table />
</CustomerContext.Provider>
</div>
);
};
export default App;
然后在子组件中访问值或者改变值
import { CustomerContext } from "./../context";
import React, { useContext } from "react";
const Table = () => {
const { user, setUser } = useContext(CustomerContext);
return (
<div>
<p onClick={() => setUser("Rohit")}>Current User: {user}</p>
</div>
);
};
export default Table;
这也可以通过简单地将状态作为道具传递给子组件来实现。
那么使用useContext有什么好处呢?或者我可能误解了视频。
有人可以帮我吗?
【问题讨论】:
-
当孩子从你的
App组件中嵌套几个父母时,使用上下文很好,因为你不必通过每个组件记住传递道具。您只需在需要的地方访问它 -
这是唯一的优势吗?
-
不,还有其他优点,但您应该阅读文档以深入比较利弊。这是一个常见的用例,这就是我提出它的原因。通常,它是处理应用程序中数据的一种更稳健的方式。
标签: reactjs react-hooks