Skip to content

useContext

useContext 提供了一种在组件树间进行数据传递的方法,无需为每层组件手动添加 props。其设计目的是解决组件树间数据传递的问题。

用法

tsx
const MyThemeContext = React.createContext({ theme: "light" }); // 创建一个上下文

function App() {
  return (
    <MyThemeContext.Provider value={{ theme: "light" }}>
      <MyComponent />
    </MyThemeContext.Provider>
  );
}

function MyComponent() {
  const themeContext = useContext(MyThemeContext); // 使用上下文
  return <div>{themeContext.theme}</div>;
}

多层嵌套

内部的 Provider 会覆盖外层的 Provider:

tsx
<MyThemeContext.Provider value={{ theme: "light" }}>
  <MyThemeContext.Provider value={{ theme: "dark" }}>
    <MyComponent />
  </MyThemeContext.Provider>
</MyThemeContext.Provider>

React 版本说明

  • React 18: 使用 MyThemeContext.Provider
  • React 19: 使用 MyThemeContext

Released under the MIT License.