当前位置: 首页 > news >正文

React 中 Context(上下文)介绍

在 React 中,Context(上下文) 是一种用于在组件树中共享数据的机制。

历史文章

React Context API 用于在组件树中共享全局状态
React -AppVarContext.Provider 提供者组件

1.什么是 React Context?

它允许你在组件树中,不通过 props 一层层传递的情况下,直接把数据传给任意深层的子组件。

解决了“逐层传递 props”导致的代码臃肿和维护困难的问题,也叫“props drilling”。

2.Context 的组成部分

  • 1.创建 Context
const MyContext = React.createContext(defaultValue);
  • 2.Provider 提供数据
<MyContext.Provider value={someValue}><YourComponents />
</MyContext.Provider>
  • 3.消费数据

在函数组件中使用 useContext

const value = React.useContext(MyContext);

在类组件中用 MyContext.Consumer

const ThemeContext = React.createContext('light');function App() {return (<ThemeContext.Provider value="dark"><Toolbar /></ThemeContext.Provider>);
}function Toolbar() {return <ThemedButton />;
}function ThemedButton() {const theme = React.useContext(ThemeContext);return <button style={{ background: theme === 'dark' ? 'black' : 'white' }}>按钮</button>;
}

这里,ThemedButton 虽然是深层子组件,但能直接拿到 ThemeContext 提供的值 ‘dark’,不用从 App 逐层传递。

3.总结

Context 是 React 用来跨组件共享数据的方案

避免了手动逐层传递 props

适合共享主题、用户信息、表单状态等全局或半全局数据

http://www.dtcms.com/a/319810.html

相关文章:

  • ReAct Agent 原生代码实现(纯Python实现)
  • OpenAI推出开源GPT-oss-120b与GPT-oss-20b突破性大模型,支持商用与灵活部署!
  • 使用RestTemplate发送与接收http/https请求
  • 告别YAML,在SpringBoot中用数据库配置替代配置文件
  • 【JS】扁平树数据转为树结构
  • [激光原理与应用-172]:测量仪器 - 能量(焦耳)与功率(瓦)的图示比较
  • 14-netty基础-手写rpc-提供方(服务端)-06
  • Java NIO 核心原理与秋招高频面试题解析
  • day28-NFS
  • iOS混淆工具使用,后续维护与版本升级中实用的混淆策略
  • 代码随想录day58图论8
  • windows操作系统定时关机、重启指令记录
  • 一周学会Matplotlib3 Python 数据可视化-坐标轴 (Axis)
  • 进程间数据的关联与隔离
  • 管家婆软件如何设置默认税率?
  • AI创新中心从“空间集聚”到“生态共生”
  • 代码库详细笔记
  • P1690 贪婪的 Copy
  • [airplay2] airplay2简略介绍
  • 前端全局注册知识【持续更新】
  • 二分查找算法,并分析其时间、空间复杂度
  • IIS7.5下的https无法绑定主机头,显示灰色如何处理?
  • [ java SE ] 多人聊天窗口1.0
  • 强光干扰下裂缝漏检率↓82%!陌讯轻量化模型在道路巡检的落地实践
  • 2深度学习Pytorch-自动微分--梯度计算、梯度上下文控制(累计梯度、梯度清零)
  • Ethereum: 像Uniswap V3贡献者一样开发,克隆、编译与测试v3-core
  • 通过减少回表和增加冗余字段,优化SQL查询效率
  • LSTM 单变量时序预测—pytorch
  • vscode+latex本地英文期刊环境配置
  • VScode使用jupyter notebook,配置内核报错没有torch解决