react Api之createContext

1、作用:

createContext 是一个用于创建上下文(context)的 API。上下文可以让您在组件树中共享数据,而不必手动通过 props 层层传递。

2、使用方式:

createContext 函数接受一个初始值作为参数,该初始值将在组件树中没有匹配到对应的 Provider 时被使用。它返回一个包含 Provider 和 Consumer 组件的对象。

  • Provider 组件: 使用 Provider 组件将上下文的值传递给后代组件。Provider 组件需要包裹在组件树中,并通过 value 属性传递需要共享的数据。
  • Consumer 组件: 使用 Consumer 组件来访问由 Provider 提供的上下文值。Consumer 组件使用 render prop 模式,可以通过一个函数接收到上下文的值,并在函数体内进行处理。

3、示例:

javascript 复制代码
import React, { createContext } from 'react';

// 创建一个上下文对象
const MyContext = createContext();

// 父组件提供上下文值
function ParentComponent() {
  const contextValue = 'Hello from Context';

  return (
    <MyContext.Provider value={contextValue}>
      <ChildComponent />
    </MyContext.Provider>
  );
}

// 子组件消费上下文值
function ChildComponent() {
  return (
    <MyContext.Consumer>
      {(value) => <div>{value}</div>}
    </MyContext.Consumer>
  );
}

// 渲染父组件
ReactDOM.render(<ParentComponent />, document.getElementById('root'));

在上述示例中,MyContext 成为了一个可供父组件和子组件使用的上下文对象。父组件 ParentComponent 使用 Provider 组件将值 'Hello from Context' 提供给后代组件。子组件 ChildComponent 使用 Consumer 组件来获取该值并进行渲染。

通过使用 createContext 和 Provider/Consumer 组件,React 的上下文功能可以实现跨组件传递数据,方便地共享数据而不需要手动逐层传递 props。这在一些场景下非常有用,例如全局主题、用户身份验证状态等。

建议参考react hooks useContext使用

相关推荐
怕浪猫几秒前
分享一个做视频的skill,这条白板视频,每一笔都是代码画的
前端·javascript·面试
aa小小16 分钟前
大屏自适应缩放方案
前端·数据可视化
陪我去看海1 小时前
被要求猛出小程序,做了这个多平台多环境的部署替我承受压力
前端·微信小程序·抖音小程序
Frag0ut1 小时前
告别插件时代:HTML5 视频播放对比 Flash/Silverlight/ActiveX 的性能与技术优势解析
前端·html5·视频播放·flash·activex·流媒体技术·silverlight
用户818618028002 小时前
MongoDB文档模型设计——从建模到索引
前端
無名路人2 小时前
小程序点餐页吸顶滚动之分类按需加载,上划切换
前端·vue.js·微信小程序
竹林8183 小时前
把神经网络塞进一个浏览器标签页:端侧视觉 AI 的工程真相
前端·浏览器
乘风gg3 小时前
别跟风 AI 副业,工程师最该学的是 AI Coding
前端·ai编程·claude
Frag0ut3 小时前
深度解析:Chrome 自启动与后台常驻服务的作用、关闭方法及利弊权衡
前端·chrome
OpsEye3 小时前
当企业不再只关心能不能调用模型,而是关心值不值得调用
javascript·ai编程