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;
相关推荐
运维阿江2 分钟前
【小白学HTML5】盒模型_第一讲
前端·html·html5
码界领航15 分钟前
【2025最新版】Chrome谷歌浏览器如何能恢复到之前的旧版本
前端·chrome
乐多_L1 小时前
使用vue3框架vue-next-admin导出表格excel(带图片)
前端·javascript·vue.js
南望无一1 小时前
React Native 0.70.x如何从本地安卓源码(ReactAndroid)构建
前端·react native
Mike_188702783511 小时前
1688代采下单API接口使用指南:实现商品采集与自动化下单
前端·python·自动化
鲨鱼辣椒️面1 小时前
HTML视口动画
前端·html
一小路一1 小时前
Go Web 开发基础:从入门到实战
服务器·前端·后端·面试·golang
堇舟1 小时前
HTML第一节
前端·html
纯粹要努力2 小时前
前端跨域问题及解决方案
前端·javascript·面试
小刘不知道叫啥2 小时前
React源码揭秘 | 启动入口
前端·react.js·前端框架