// 组件传值 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 上下文的更多相关文章

  1. 组件之间使用Prop传递数据

    <div id="example"> <father></father> </div> <script src="h ...

  2. vue.js 同级组件之间的值传递方法(uni-app通用)

    vue.js 兄弟组件之间的值传递方法 https://blog.csdn.net/jingtian678/article/details/81634149

  3. activity之间通过全局变量传递数据

    activity之间通过全局变量传递数据 一.简介 Application域中的onCreate方法是Android程序的入口,Android程序运行的时候就自动加载Application的对象,感觉 ...

  4. React 学习(六) ---- 父子组件之间的通信

    当有多个组件需要共享状态的时候,这就需要把状态放到这些组件共有的父组件中,相应地,这些组件就变成了子组件,从而涉及到父子组件之间的通信.父组件通过props 给子组件传递数据,子组件则是通过调用父组件 ...

  5. React生命周期, 兄弟组件之间通信

    1.一个demo(https://www.reactjscn.com/docs/state-and-lifecycle.html) class Clock extends React.Componen ...

  6. React Context(一):隐式传递数据

    一 Context概述 Context provides a way to pass data through the component tree without having to pass pr ...

  7. vue组件之间通过query传递参数

    需求: 从 任务列表进入 任务详情 ,向详情页传递当前 mission_id 值 路由关系: //查看任务列表 { path: '/worklist', name: 'worklist', compo ...

  8. Vue 兄弟组件通过事件广播传递数据

    非父子组件传值 通过事件广播实现非父子组件传值1.新建js,引入并实例化Vue import Vue from 'vue' var VueEvent = new Vue(); export defau ...

  9. Navigation 在fragment之间用bundel传递数据

    使用 Bundle 对象在目的地之间传递参数 如果您不使用 Gradle,仍然可以使用 Bundle 对象在目的地之间传递参数.创建 Bundle 对象并使用 navigate() 将它传递给目的地, ...

  10. React 组件之间通信 All in One

    React 组件之间通信 All in One 组件间通信 1. 父子组件之间通信 props 2. 兄弟组件之间通信 3. 跨多层级的组件之间通信 Context API https://react ...

随机推荐

  1. 《Python数据可视化之matplotlib实践》 源码 第二篇 精进 第五章

    图 5.1 import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker import AutoMinorLoca ...

  2. Cannot lower pallas_call on platform: cuda

    Jax框架JAX-Triton不可用: 参考地址: MLIR translation rule for primitive 'pallas_call' not found for platform c ...

  3. 2023年人工智能发展现状报告:State of AI Report 2023

    链接: https://www.stateof.ai/ ================================ Now in its sixth year, the State of AI ...

  4. Windows系统下硬盘S.M.A.R.T硬盘检测工具——硬盘检测工具(CrystalDiskInfo)

    CrystalDiskInfo是由日本人hiyohiyo个人开发的小工具,能全面详细直观的检查硬盘的健康状态及各种参数. 绿色版软件. 官方下载地址: https://crystalmark.info ...

  5. notepad++安装HexEdit插件

    notepad++安装HexEdit插件 打开notepad++,选择插件->插件管理 在这里找到HexEdit点击安装就可以 点击完,notepad++会自动重启,重启完成就安装好了

  6. GOT & PLT 易于理解的个人笔记

    为什么我们用动态链接和GOT表 我们知道静态链接就没那么多事,直接把全部要用的函数都绑定在一起,各个变量和函数之间的偏移量当然能算出来. 但是这也恰恰是静态链接的缺点,相同的代码段反复调用真是太臃肿了 ...

  7. 9组-Beta冲刺-总结

    一.基本情况 组长博客链接:9组-Beta冲刺-总结 现场答辩总结:本次答辩,我们演示了我们到Beta冲刺周结束时的成果展示,离目标还有一些距离,不过本次答辩完成了任务,总体来说还不错,希望下次最终答 ...

  8. 处理报错 ResizeObserver loop completed with undelivered notifications.

    // 处理报错 ResizeObserver loop completed with undelivered notifications. export const handlerResizeObse ...

  9. 抖音集团 FlinkSQL 性能优化探索及实践

    本文作者:李精卫   更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   背景 随着抖音集团内部对流式任务的需求不断增长,Flink SQL作为一种低成本接入手段 ...

  10. 【YashanDB数据库】Yashandb表闪回业务表实践

    数据误删除 DELETE 操作闪回 示例(HEAP表) 基于闪回查询(建议): select * from sales.branches1; BRANCH_NO BRANCH_NAME AREA_NO ...