createContext 是一个用于创建上下文(context)的 API。上下文可以让您在组件树中共享数据,而不必手动通过 props 层层传递。
createContext 函数接受一个初始值作为参数,该初始值将在组件树中没有匹配到对应的 Provider 时被使用。它返回一个包含 Provider 和 Consumer 组件的对象。
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使用