• はじめに React HooksのuseContextを学びましょう!useContextフックを使うと、従来のコンテキストコンシューマを使わずにコンテキストの値にアクセスできます。GeekとGalが一緒にuseContextを探検していきましょう。
Gal Normal

useContextフックは、コンテキストコンシューマでコンポーネントをラップせずにコンテキストの値にアクセスするのにめっちゃ便利なのよ!

Geek Curious

おお、それは便利そうだね!どうやって使うの?

Gal Happy

まず、コンテキストが必要になるわ。 React.createContext() を使って作成できるの。そして、ReactからuseContextフックをインポートして、コンテキストと一緒に使うの。

  • コンテキストの作成とuseContextの使用
Gal Pleased

コンテキストを作成し、useContextを使ってその値にアクセスする例を見てみて:

import React, { useContext } from 'react';

// コンテキストの作成
const ThemeContext = React.createContext('light');

function ThemedButton() {
  // useContextを使ってコンテキストの値にアクセス
  const theme = useContext(ThemeContext);
  return <button className={theme}>私は{theme}ボタンだよ</button>;
}
Geek Happy

つまり、 React.createContext() でコンテキストを作成して、そのコンテキストとuseContextを使って値を取得するんだね!

Gal Happy

その通り!そして、コンポーネント内でコンテキストの値を好きなように使えるのよ!

  • コンテキスト値の提供
Gal Pleased

でもね、コンテキストの値を設定するためには、コンテキストプロバイダがまだ必要になるわ。そのために、コンテキストから Provider コンポーネントを使うの!

import React from 'react';
import ThemedButton from './ThemedButton';

function App() {
  return (
    <ThemeContext.Provider value="dark">
      <ThemedButton />
    </ThemeContext.Provider>
  );
}
Geek Happy

ああ、コンテキストプロバイダがコンテキストの値を設定し、useContextがコンポーネントでその値にアクセスできるようにするんだね!

Gal Happy

バッチリ!useContextを使うと、余分なネストなしで関数コンポーネント内でコンテキストの値にアクセスするのが簡単になるわ!

  • おわりに useContextは、関数コンポーネントでのコンテキスト値のアクセスを簡素化する強力なReactフックです。useContextを使うことで、不要なネストを避け、コードをクリーンで効率的にすることができます。useContextで楽しくコーディングしましょう!😃