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;
相关推荐
爱勇宝几秒前
大多数人不是在使用 AI 赚钱,而是在帮 AI 公司赚钱
前端·后端·程序员
冬奇Lab1 小时前
每日一个开源项目(第143篇):page-agent - 纯 JS 的网页 GUI Agent,无需截图、无需插件、无需后端
前端·人工智能·agent
IT_陈寒5 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
追逐时光者7 小时前
别再满网找零散工具了,腾讯 QQ 浏览器这个“帮小忙”工具箱真能省时间
前端·后端
Asmewill9 小时前
grep&curl命令学习笔记
前端
stringwu9 小时前
Flutter 开发必备:MVI 架构的高效实现指南
前端·flutter
用户21366100357210 小时前
Vue2组件化开发与父子通信
前端·vue.js
Momo__10 小时前
TypeScript satisfies 操作符——比 as 更安全的类型守门员
前端·typescript
用户21366100357210 小时前
Vue2事件系统与指令进阶
前端·vue.js
labixiong10 小时前
实现一个能跑的迷你版Promise(一)
前端·javascript·面试