React-Context机制

1.概念

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

2.实现步骤

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

3.代码实现

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

javascript 复制代码
const MsgContext=createContext()

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

javascript 复制代码
// 顶层组件
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钩子函数获取数据

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

4.源代码

javascript 复制代码
// 实现步骤:
// 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 小时前
基于Python的Web命令执行漏洞自动化检测系统
前端·python·网络安全·自动化
新酱爱学习1 小时前
手搓 10 个 Skill 后,我把重复劳动收敛成了一套零依赖 CLI 工具
前端·javascript·人工智能
IT_陈寒1 小时前
Python的线程池居然把我坑在了垃圾回收这块
前端·人工智能·后端
研☆香2 小时前
es6新特性功能介绍(一)
前端·ecmascript·es6
陈_杨2 小时前
鸿蒙开发-疾阅App阅读训练功能技术解析
前端·javascript
zhangxingchao2 小时前
AI应用开发八:RAG相关技术总结
前端·人工智能·后端
凌涘2 小时前
依托 BEM 规范深度剖析 WeUI 微信按钮组件开发与实现
前端·微信
小KK_2 小时前
CSS浮动布局指南:从文档流到BFC
前端·css·html
Hommy883 小时前
【剪映小助手】音频处理接口
前端·音视频·剪映小助手·视频剪辑自动化