首页 > 其他分享 >10-react不同层级的组件之间的数据传递数据 createContext 上下文

10-react不同层级的组件之间的数据传递数据 createContext 上下文

时间:2023-04-30 15:45:17浏览次数:38  
标签:createContext 10 react 组件 使用 传递数据 数据

// 组件传值 props 接收传递过来的数据
import ReactDom from "react-dom"

import { createContext, Component } from "react"

// createContext is useed to create a context bojection from context properties 
// 返回一个对象
// Provider 提供状态 Consumer 使用状态  成对出现 和 vue 中的 provvide 和 inject 类似的
const { Provider, Consumer } = createContext()
// 使用方式: Provider 包裹要传递数据的一个组件 并在provide标签内value提供数据
// 使用 Consumer 标签包裹 就得到了传过来的数据

// 类组件中使用函数组件 和 类组件 注意区分不同的组件使用不同方式接收数据
const Hellow = () => {
 //消费组件值
 return (<Consumer  >
  123
 </Consumer>)
}
class ComClass extends Component {
 render () {
  // 可以传递任意数据
  console.log(this.props)  // 父组件传递过来的数据 子组件使用 props 接收数据
  // 特点:单向的 ,即和 vue 中的子组件不能直接修改父组件的数据 
  // 父组件更新数据 子组件随后跟随更新数据 【单向数据流】 【自定向下的数据设计格式】
  // 使用context实现跨多级别租价实现通信
  return (<>
   <h1>类组件</h1>
  </>)
 }
}
class App extends Component {
 state = {
  count: 230
 }
 render () {
  return (<Provider value={this.state.count}>
   {/* 函数组件和类组件传值都是使用name属性 */}
   <Hellow ></Hellow>
   {/* <ComClass name="迪丽热巴" age="30" gender="女"></ComClass> */}
  </Provider>)
 }
}


// 函数组件渲染到页面
ReactDom.render(<App />, document.querySelector("#root"))

不推荐使用,繁琐 ;

标签:createContext,10,react,组件,使用,传递数据,数据
From: https://www.cnblogs.com/zhulongxu/p/17365353.html

相关文章

  • Win10系统命令行以管理员身份运行的几种方式
    在win10系统中运行许多命令需要使用管理员身份运行,如果直接按下win+R组合键呼出运行,键入cmd打开命令提示符输入命令执行的话会出现无法执行的现象。给大家分享下win10系统中几个以管理员身份运行的方法。方法一:1、在开始菜单上单击鼠标右键,在弹出的菜单中点击【命令提示符(......
  • 1033. 移动石子直到连续
    1033.移动石子直到连续三枚石子放置在数轴上,位置分别为a,b,c。每一回合,你可以从两端之一拿起一枚石子(位置最大或最小),并将其放入两端之间的任一空闲位置。形式上,假设这三枚石子当前分别位于位置x,y,z且x<y<z。那么就可以从位置x或者是位置z拿起一枚石子,并将该石......
  • PAT Advanced 1003. Emergency
    PATAdvanced1003.Emergency1.ProblemDescription:Asanemergencyrescueteamleaderofacity,youaregivenaspecialmapofyourcountry.Themapshowsseveralscatteredcitiesconnectedbysomeroads.Amountofrescueteamsineachcityandthelen......
  • 转 LSI SAS 1068E Raid CentOS 5.7 安装浪潮NF5220
    (转)LSISAS1068ERaidCentOS5.5安装实例浪潮NF5220系列分类:linux 新来了一批服务器,全都是清一色的国产服务器,相同的阵列卡,令人头疼的是Linux标准内核不包含该raid驱动,需要单独安装,如果是新升级内核,肯定需要编译进去该raid驱动。一、先把主板自带的驱动光盘中的驱动文件......
  • 如何彻底关闭 Windows 10 自动更新
    彻底关闭Windows10自动更新,分为三步,具体如下:1.组策略禁用Windows更新Win键+R,输入gpedit.msc,启动组策略编辑器。左侧选择[本地计算机配置]->[管理模板]->[Windows组件]->[Windows更新],禁用右侧的[配置自动更新]和[启用通过自动更新建议的更新]选项。2.停......
  • #10024. 「一本通 1.3 练习 3」质数方阵
    loj题目传送门一本通题目传送门洛谷传送门原题是UVA835,是多测思路肯定是要剪枝的呀众所周知,dfs的路径像树一样显而易见,树的某一层的节点越少,他的下面的分支就越少于是我们考虑改变搜索顺序来剪掉更多的分支一个数的末位要是\(0\),那他肯定不是质数。于是我们先从所有数的......
  • OverTheWire攻关过程-Bandit模块10
    我们继续访问lv9-lv10,查看信息机器翻译下一级的密码存储在文件数据中。txt在少数人类可读的字符串之一,前面有几个'='字符。我们登陆服务器使用上一关的命令,发现很多乱码我们看下string命令有点难懂直接上手,发现很多信息strings./data.txt|grep=我们进一步匹配发现密码记录密码......
  • window10删除3D对象等7个文件夹
    注册表管理器regeditHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\按照需要,删除以下7个文件夹。[3D对象][视频][音乐][图片][下载][桌面][文档]......
  • 2023-04-29:一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数
    2023-04-29:一个序列的宽度定义为该序列中最大元素和最小元素的差值。给你一个整数数组nums,返回nums的所有非空子序列的宽度之和由于答案可能非常大,请返回对109+7取余后的结果。子序列定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数组......
  • 2023-04-29:一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数
    2023-04-29:一个序列的宽度定义为该序列中最大元素和最小元素的差值。给你一个整数数组nums,返回nums的所有非空子序列的宽度之和由于答案可能非常大,请返回对109+7取余后的结果。子序列定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数......