React Context Docs 是一个文档网站,旨在为开发者提供关于 React Context 的详细信息和最佳实践。以下是一些关于 React Context 的基础概念和用法。

基础概念

React Context 提供了一种无需为每层组件手动添加 props,就能在组件树间进行数据传递的方法。

1. 创建 Context

首先,你需要创建一个 Context。这可以通过 React.createContext 方法实现。

const MyContext = React.createContext();

2. 使用 Context

在组件中使用 Context 非常简单。首先,你需要在顶层组件中包裹一个 Provider 组件,并传递一个值。

<MyContext.Provider value={{ someData }}>
  {/* 组件树 */}
</MyContext.Provider>

然后,在需要使用这个值的组件中,你可以通过 MyContext.Consumer 或者 useContext 钩子来获取它。

<MyContext.Consumer>
  {value => (
    <div>{value.someData}</div>
  )}
</MyContext.Consumer>

// 或者使用 useContext 钩子

const value = useContext(MyContext);

实例:Counter 应用

下面是一个简单的 Counter 应用示例,展示了如何使用 Context 来实现组件间的数据共享。

// CounterContext.js
import React, { createContext, useState } from 'react';

const CounterContext = createContext();

export const CounterProvider = ({ children }) => {
  const [count, setCount] = useState(0);

  return (
    <CounterContext.Provider value={{ count, setCount }}>
      {children}
    </CounterContext.Provider>
  );
};

export default CounterContext;

// App.js
import React from 'react';
import { CounterProvider, CounterContext } from './CounterContext';

const App = () => {
  return (
    <CounterProvider>
      <CounterDisplay />
      <CounterButton />
    </CounterProvider>
  );
};

const CounterDisplay = () => {
  const { count } = useContext(CounterContext);
  return <div>Count: {count}</div>;
};

const CounterButton = () => {
  const { count, setCount } = useContext(CounterContext);
  return <button onClick={() => setCount(count + 1)}>Increment</button>;
};

export default App;

更多关于 React Context 的内容,请访问我们的React Context 文档

[center][Golden_Retriever]