当前位置:首页 > React

react如何使用context

2026-03-31 07:27:42React

使用 React Context 的基本步骤

创建 Context 对象:

const MyContext = React.createContext(defaultValue);

defaultValue 是当组件没有匹配到 Provider 时的默认值。

使用 Provider 提供数据:

<MyContext.Provider value={/* 某个值 */}>
  {/* 子组件 */}
</MyContext.Provider>

value 属性会被传递给消费组件。

类组件中消费 Context

使用 Context.Consumer

<MyContext.Consumer>
  {value => /* 基于 context 值进行渲染 */}
</MyContext.Consumer>

或者使用 contextType

class MyClass extends React.Component {
  static contextType = MyContext;
  render() {
    let value = this.context;
    /* 基于 value 渲染 */
  }
}

函数组件中消费 Context

使用 useContext Hook:

function MyComponent() {
  const value = useContext(MyContext);
  /* 基于 value 渲染 */
}

最佳实践

将 Context 与自定义 Hook 结合:

function useMyContext() {
  const context = useContext(MyContext);
  if (!context) {
    throw new Error('useMyContext must be used within a MyProvider');
  }
  return context;
}

避免不必要的重新渲染:

function MyProvider({ children }) {
  const [state, setState] = useState(initialState);
  const value = useMemo(() => [state, setState], [state]);
  return <MyContext.Provider value={value}>{children}</MyContext.Provider>;
}

多个 Context 使用

可以嵌套多个 Provider:

<ContextA.Provider value={valueA}>
  <ContextB.Provider value={valueB}>
    {/* 子组件 */}
  </ContextB.Provider>
</ContextA.Provider>

在组件中消费多个 Context:

function MyComponent() {
  const a = useContext(ContextA);
  const b = useContext(ContextB);
  /* ... */
}

性能优化

对于频繁变化的 Context,考虑拆分:

react如何使用context

const StateContext = React.createContext();
const DispatchContext = React.createContext();

function MyProvider({ children }) {
  const [state, dispatch] = useReducer(reducer, initialState);
  return (
    <StateContext.Provider value={state}>
      <DispatchContext.Provider value={dispatch}>
        {children}
      </DispatchContext.Provider>
    </StateContext.Provider>
  );
}

分享给朋友:

相关文章

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment 基本…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

react 如何运行

react 如何运行

运行 React 项目的步骤 安装 Node.js 确保系统已安装 Node.js(建议版本 16+),可通过官网下载并安装。安装后验证版本: node -v npm -v 创建 React 项目…

react如何配置

react如何配置

配置React项目的基本步骤 安装Node.js和npm 确保系统已安装Node.js(包含npm)。可通过命令行检查版本: node -v npm -v 创建React项目 使用官方工具Creat…

如何读react源码

如何读react源码

理解React源码的结构 React源码托管在GitHub上,主要分为几个核心模块:react、react-dom、react-reconciler等。react包包含核心API和组件逻辑,react…

小白如何搭建react

小白如何搭建react

安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过官网下载安装包(https://nodejs.org/),选择 LTS 版本。安装完成后,终端运行以下命令验证版…