当前位置:首页 > React

react如何使用context

2026-02-12 04:14:29React

使用 React Context 的基本步骤

创建 Context 对象:

const MyContext = React.createContext(defaultValue);

提供 Context 值:

<MyContext.Provider value={/* 某个值 */}>
  {/* 子组件 */}
</MyContext.Provider>

在子组件中消费 Context:

// 类组件
static contextType = MyContext;
// 或在函数组件/类组件中使用 Consumer
<MyContext.Consumer>
  {value => /* 基于 context 值进行渲染 */}
</MyContext.Consumer>

函数组件中使用 useContext

对于函数组件,可以使用 useContext Hook 简化消费:

const value = useContext(MyContext);

动态 Context 更新

Provider 的 value 变化时,所有消费该 Context 的组件都会重新渲染。确保 value 对象引用变化能触发更新:

const [value, setValue] = useState(initialValue);
<MyContext.Provider value={{ value, setValue }}>
  {/* 子组件 */}
</MyContext.Provider>

多 Context 使用

一个应用可以使用多个 Context,嵌套 Provider 即可:

<ThemeContext.Provider value={theme}>
  <UserContext.Provider value={user}>
    {/* 子组件 */}
  </UserContext.Provider>
</ThemeContext.Provider>

性能优化

避免 Context 值频繁变化导致不必要的渲染:

  • 将不常变化的数据分离到单独 Context
  • 使用 memo 或 useMemo 优化子组件

类型安全(TypeScript)

为 Context 提供类型定义:

interface MyContextType {
  value: string;
  setValue: (v: string) => void;
}

const MyContext = React.createContext<MyContextType>({
  value: '',
  setValue: () => {}
});

react如何使用context

分享给朋友:

相关文章

react 如何引入jquery

react 如何引入jquery

安装 jQuery 库 在 React 项目中引入 jQuery 的第一步是安装 jQuery。可以通过 npm 或 yarn 安装: npm install jquery # 或 yarn a…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 编写组件代码 在…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…