当前位置:首页 > 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 提供类型定义:

react如何使用context

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

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

分享给朋友:

相关文章

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

react如何发布

react如何发布

发布React应用的步骤 构建生产版本 使用以下命令生成优化后的生产版本代码,代码会被压缩并移除开发环境中的调试工具: npm run build 构建完成后会生成build文件夹,包含所有静态资源…

如何恢复react

如何恢复react

恢复 React 项目的方法 检查并修复依赖项 运行 npm install 或 yarn install 重新安装所有依赖项。如果依赖项损坏或缺失,这将恢复项目所需的库和工具。 恢复删除的文件 如…

react如何引入

react如何引入

引入React的方法 React可以通过多种方式引入项目,具体取决于项目需求和开发环境。以下是常见的几种方法: 通过CDN引入 在HTML文件中直接通过CDN链接引入React和ReactDOM:…

react 如何获取dom

react 如何获取dom

获取 DOM 的方法 在 React 中,可以通过 useRef 或 createRef 来获取 DOM 节点。useRef 是函数组件中常用的方法,而 createRef 通常用于类组件。 使用…

react如何实现混入

react如何实现混入

在React中实现混入(Mixin)功能可以通过以下几种方式实现,React官方已不推荐使用传统的React.createClass混入方式,但可通过高阶组件或自定义Hook替代。 高阶组件(HOC…