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 ...
随机推荐
- 【JDBC】Extra02 SqlServer-JDBC
官网驱动获取地址: https://www.microsoft.com/zh-cn/download/details.aspx Maven仓库获取: https://mvnrepository.com ...
- Google的TPU的逐元素操作特性 —— TPU数据操作时最基本的操作原语(primitive)
地址: https://jax.readthedocs.io/en/latest/pallas/tpu.html TPU是原来进行矩阵计算加速的一个科学计算的设备,功能大致等同于NVIDIA的GPU的 ...
- PyTorch显存机制分析
参考: ======================================================= 在pytorch中有几个关于显存的关键词: 在pytorch中显存为缓存和变量分 ...
- WSL启动nvidia-docker镜像:报错libnvidia-ml.so.1- file exists- unknown
参考: https://blog.csdn.net/xujiamin0022016/article/details/124782913 https://zhuanlan.zhihu.com/p/361 ...
- 【转载】 pytorch锁死在dataloader(训练时卡死)
版权声明:本文为CSDN博主「Totoro-wen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_325 ...
- 被怼了:acks=all消息也会丢失?
消息队列是面试中一定会被问到的技术模块,虽然它在面试题占比不及并发编程和数据库,但也属于面试中的关键性问题.所以今天我们就来看一道,MQ 中高频,但可能会打破你以往认知的一道面试题. 所谓的关键问题指 ...
- 通过JUnit源码分析学习编程的奇技淫巧
打开 Maven仓库,左边选项栏排在第一的就是测试框架与工具,今天的文章,V 哥要来聊一聊程序员必备的测试框架JUnit 的源码实现,整理的学习笔记,分享给大家. 有人说,不就一个测试框架嘛,有必要去 ...
- SpringBoot优雅开发REST API最佳实践
写在前面 博主最近在做一个数据服务的项目,而这个数据服务的核心就是对外暴露的API,值得高兴的这是一个从0开始的项目,所以终于不用受制于"某些历史"因素去续写各种风格的Contro ...
- 【全】CSS动画大全之其他【移动盒子显示详情】
效果预览 代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- Python 潮流周刊#66:Python 的预处理器(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...