React-Context机制

1.概念

说明:通过Context机制跨层级组件通讯。父传子。

2.实现步骤

说明:使用createContext方法创建实例对象;顶层组件通过实例对象上面的Provider组件提供数据;底层组件中通过useContext钩子函数获取数据。

3.代码实现

3.1使用createContext方法创建实例对象

const MsgContext=createContext()

3.2 顶层组件通过实例对象上面的Provider组件提供数据

// 顶层组件
function App() {
  const msg='this is app msg'
  return (
    <div>
      {/* 上下文允许组件之间共享数据,而无需通过逐层传递属性(props) */}
      <MsgContext.Provider value={msg}>
      this is app
      <Son1></Son1>
      </MsgContext.Provider>
    </div>
  );
}

3.3 底层组件中通过useContext钩子函数获取数据

function Son2() {
  const msg=useContext(MsgContext)
  return <div>
    this is son2,{msg}
  </div>;
}

4.源代码 

// 实现步骤:
// l.使用createContext方法创建一个上下文对象Ctx
// 2.在顶层组件(App)中通过Ctx.Provider组件提供数据
// 3.在底层组件(B)中通过useContext钩子函数获取消费数据

import {createContext, useContext} from 'react'
const MsgContext=createContext()



function Son1() {
  return <div>
    this is son1
    <Son2></Son2>
  </div>;
}
function Son2() {
  const msg=useContext(MsgContext)
  return <div>
    this is son2,{msg}
  </div>;
}
// 顶层组件
function App() {
  const msg='this is app msg'
  return (
    <div>
      {/* 上下文允许组件之间共享数据,而无需通过逐层传递属性(props) */}
      <MsgContext.Provider value={msg}>
      this is app
      <Son1></Son1>
      </MsgContext.Provider>
    </div>
  );
}

export default App;

 

 

 

相关推荐

  1. React-Context机制

    2024-03-10 23:50:04       21 阅读
  2. React Context

    2024-03-10 23:50:04       12 阅读
  3. React Context 的使用详解

    2024-03-10 23:50:04       17 阅读
  4. reactreact 使用 Context 的简单示例

    2024-03-10 23:50:04       10 阅读
  5. 使用React Context的一些优化建议

    2024-03-10 23:50:04       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 23:50:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 23:50:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 23:50:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 23:50:04       20 阅读

热门阅读

  1. websocket+心跳

    2024-03-10 23:50:04       23 阅读
  2. uniapp 开发app,如何使用模拟器

    2024-03-10 23:50:04       22 阅读
  3. linux系统安装docker

    2024-03-10 23:50:04       19 阅读
  4. CatBoost高级教程:分布式训练与大规模数据处理

    2024-03-10 23:50:04       21 阅读
  5. Linux运维_Bash脚本_编译安装Mesa-23.3.6(OpenGL)

    2024-03-10 23:50:04       19 阅读
  6. 从零开始 TensorRT(7)C++ 篇:解析 ONNX

    2024-03-10 23:50:04       23 阅读
  7. 云贝福利课程倒计时-Oracle小课

    2024-03-10 23:50:04       16 阅读
  8. 202109CSPT4收集卡牌

    2024-03-10 23:50:04       18 阅读
  9. TypeScript的基础类型和高级类型梳理总结

    2024-03-10 23:50:04       22 阅读
  10. 安装pytorch省流版

    2024-03-10 23:50:04       23 阅读