10-react不同层级的组件之间的数据传递数据 createContext 上下文
// 组件传值 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"))
不推荐使用,繁琐 ;
10-react不同层级的组件之间的数据传递数据 createContext 上下文的更多相关文章
- 组件之间使用Prop传递数据
<div id="example"> <father></father> </div> <script src="h ...
- vue.js 同级组件之间的值传递方法(uni-app通用)
vue.js 兄弟组件之间的值传递方法 https://blog.csdn.net/jingtian678/article/details/81634149
- activity之间通过全局变量传递数据
activity之间通过全局变量传递数据 一.简介 Application域中的onCreate方法是Android程序的入口,Android程序运行的时候就自动加载Application的对象,感觉 ...
- React 学习(六) ---- 父子组件之间的通信
当有多个组件需要共享状态的时候,这就需要把状态放到这些组件共有的父组件中,相应地,这些组件就变成了子组件,从而涉及到父子组件之间的通信.父组件通过props 给子组件传递数据,子组件则是通过调用父组件 ...
- React生命周期, 兄弟组件之间通信
1.一个demo(https://www.reactjscn.com/docs/state-and-lifecycle.html) class Clock extends React.Componen ...
- React Context(一):隐式传递数据
一 Context概述 Context provides a way to pass data through the component tree without having to pass pr ...
- vue组件之间通过query传递参数
需求: 从 任务列表进入 任务详情 ,向详情页传递当前 mission_id 值 路由关系: //查看任务列表 { path: '/worklist', name: 'worklist', compo ...
- Vue 兄弟组件通过事件广播传递数据
非父子组件传值 通过事件广播实现非父子组件传值1.新建js,引入并实例化Vue import Vue from 'vue' var VueEvent = new Vue(); export defau ...
- Navigation 在fragment之间用bundel传递数据
使用 Bundle 对象在目的地之间传递参数 如果您不使用 Gradle,仍然可以使用 Bundle 对象在目的地之间传递参数.创建 Bundle 对象并使用 navigate() 将它传递给目的地, ...
- React 组件之间通信 All in One
React 组件之间通信 All in One 组件间通信 1. 父子组件之间通信 props 2. 兄弟组件之间通信 3. 跨多层级的组件之间通信 Context API https://react ...
随机推荐
- Label Studio数据标注--通过源码安装
Label Studio是Heartex公司开发的一款在线数据标注工具,分为社区版(开源)和企业版(云服务,收费),企业版提供了增强的安全性(单点登录.角色基于访问控制.SOC2).团队管理.分析和报 ...
- 【CI/CD】Jenkins 部署前后端项目Demo
前置环境准备: 参考尚硅谷最新发布的Jenkins教程 同样准备了三台服务器: 192.168.124.34 Centos7 8G内存 用于安装GitLab 192.168.124.35 Centos ...
- 【Windows】关闭 Ctrl+Alt+Delete 锁屏
参考百度经验: https://jingyan.baidu.com/article/9158e0005787c3a2541228b3.html Win + R 运行 gpedit.msc
- 【Docker】09 部署挂载本地目录的Redis
1.拉取Redis镜像: docker pull redis:6.0.6 2.执行挂载命令: docker run -d \ --name=redis \ --restart=always \ --p ...
- 【SpringMVC】IDEA 不识别webapp的解决办法
参考地址: https://blog.csdn.net/omrleft123/article/details/70237205
- 给大家降降火 —— AI养殖是否夸大功效 —— 深大学生用AI养乌骨鸡增产6万只
看到一个新闻: 地址: https://export.shobserver.com/baijiahao/html/705726.html 这个新闻里面说的就是这个腾讯的对口培养的大学生搞了一个AI养殖 ...
- 始智AI —— https://wisemodel.cn/ —— 试用
清华大学的合资企业推出的服务: 始智AI -- https://wisemodel.cn/ 链接: 始智AI -- https://wisemodel.cn/ 和modelscope比相对简约,毕竟功 ...
- Ubuntu18.04 环境下 解决VScode中空格长度减小的问题
问题: Ubuntu下安装vscode后发现空格特别小,只有正常空格的一半大小 ======================================================= ...
- gym库中类FilterObservation(ObservationWrapper)的理解
filter_observation.py模块中类 FilterObservation(ObservationWrapper) 的理解. 代码: import copy from gym import ...
- 教程 | 使用 Apache SeaTunnel 同步本地文件到阿里云 OSS
一直以来,大数据量一直是爆炸性增长,每天几十 TB 的数据增量已经非常常见,但云存储相对来说还是不便宜的.众多云上的大数据用户特别希望可以非常简单快速的将文件移动到更实惠的 S3.OSS 上进行保存, ...