コンテキスト (Context)とは

Reactのコンテキスト (Context)は、コンポーネントツリー全体でデータを共有するための仕組みです。

通常、Reactではデータはpropsを通じて親コンポーネントから子コンポーネントに渡されますが、コンテキストを使用すると、中間のコンポーネントを経由せずにデータを直接渡すことができます。

 

コンテキストは、以下のようなシナリオで役立ちます。

 

1、グローバルなデータの共有

複数のコンポーネントで同じデータにアクセスする必要がある場合、コンテキストを使用してグローバルなデータを共有できます。

例えば、ユーザーの認証状態やテーマの情報などが該当します。

 

2、コンポーネントツリーの深い階層でのデータの受け渡し

コンテキストを使用すると、データを中間のコンポーネントを介さずに深い階層のコンポーネントに渡すことができます。

これにより、propsを手動で逐一渡す手間を省くことができます。

 

コンテキストの使用手順は次の通りです

 

1、コンテキストを作成する

React.createContext() メソッドを使用して、新しいコンテキストオブジェクトを作成します。

 

2、プロバイダーコンポーネントを作成する

コンテキストのデータを提供するために、プロバイダーコンポーネントを作成します。

このコンポーネントはコンテキストの値を指定し、子コンポーネントに渡します。

 

3、コンシューマーコンポーネントを作成する

データを受け取るコンポーネントを作成します。

このコンポーネントは useContext() フックを使用してコンテキストの値を取得し、それを利用してUIをレンダリングします。

 

以下は、簡単な例を示します。

 

コンテキストの例

コンテキストの例

上記の例では、MyProvider コンポーネントでコンテキストを提供し、MyComponent コンポーネントでコンテキストの値を取得して表示しています。

App コンポーネントで MyProvider をラップすることで、コンテキストがアプリケーション全体に渡されます。

 

このように、Reactのコンテキストを使用することで、データの共有やプロパティの受け渡しを簡素化できます。

ただし、適切に使用しないとコンポーネント間の依存関係が複雑になる可能性があるため、注意が必要です。