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使用

相关推荐
咩咩啃树皮2 分钟前
第43篇:Vue3计算属性(computed)完全精讲——缓存机制、依赖计算、业务最优解
前端·vue.js·缓存
用户938515635071 小时前
从零搭建 AI 日记助手:用 Milvus 向量数据库 + RAG 让机器读懂你的每一天
javascript·人工智能·全栈
徐小夕2 小时前
花了一周,3亿tokens,我开源了一款 Word 文档智能审查平台,文稿自动质检+可视化分析,告别低效人工审核
前端·算法·github
a1117762 小时前
坦克大战3D Three.js 3D (开源项目)
开发语言·javascript·3d
kyriewen3 小时前
别再乱用useEffect了——你写的10个里有8个不该存在
前端·javascript·react.js
Ivanqhz3 小时前
Rust &‘static str浅析
java·前端·javascript·rust
IT_陈寒4 小时前
SpringBoot这个分页坑,我踩了三天才爬出来
前端·人工智能·后端
颜酱4 小时前
05 | 召回前置准备:根据业务数据库生成各数据库(读取配置阶段)
前端·人工智能·后端
zandy10114 小时前
衡石 Agentic BI的ReAct 推理框架在 Agentic BI 中的工程化实践
前端·javascript·react.js
罗超驿5 小时前
JavaEE进阶之路:从Web架构原理到HTML标签全解析
前端·html·web·javaee