Reactにおいて、コンポーネント間でデータの受け渡しが必要になった場合、通常はpropsを利用して親から子コンポーネントに渡していきます。しかし、コンポーネントが多くなってくると、親から孫、ひ孫と渡していくことになり、管理が複雑になってしまいます。

こうした場合に役立つのが、React HooksのuseContextです。useContextを使えば、グローバルステートを簡単に管理することができます。

まず、グローバルステートを管理するためのContextを作成します。以下の例では、ThemeContextというContextを作成しています。

import React from 'react';

const ThemeContext = React.createContext();

export default ThemeContext;

次に、グローバルステートを利用したいコンポーネント内で、useContextを使ってグローバルステートを取得します。

import React, { useContext } from 'react';
import ThemeContext from './ThemeContext';

function SomeComponent() {
  const { theme, setTheme } = useContext(ThemeContext);

  return (
    <div>
      <p>{theme}</p>
      <button onClick={() => setTheme('dark')}>Dark Mode</button>
    </div>
  );
}

export default SomeComponent;

このようにすることで、ThemeContext内で定義したグローバルステートであるthemeとsetThemeを、SomeComponent内で利用することができます。

また、グローバルステートを変更したい場合は、setThemeなどのsetter関数を呼び出して値を変更することができます。

以上が、React HooksのuseContextを使ったグローバルステートの管理方法です。コンポーネント間でデータを受け渡す際に、propsを使うだけではなく、useContextを使ってグローバルステートを管理する方法を覚えておくと便利です。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です