← inaro.devAI駆動開発 学習ツール
中級

カスタムフック

なぜ学ぶか: useAuth()・useWindowWidth() — AIのコードにはuseで始まる自作関数がよく出ます。これはカスタムフックといって、stateやuseEffectを含む処理を「部品」として切り出したものです。例を見てください。

まずはこの例を見てみましょう

// カスタムフック: 「ウィンドウの幅を追いかける」処理を部品化
function useWindowWidth() {
  const [width, setWidth] = useState(0);
  useEffect(() => {
    const update = () => setWidth(window.innerWidth);
    update();
    window.addEventListener("resize", update);
    return () => window.removeEventListener("resize", update);
  }, []);
  return width;
}

// 使う側は、たった1行
function Layout() {
  const width = useWindowWidth();
  return <p>{width < 768 ? "モバイル表示" : "PC表示"}</p>;
}

state・useEffect・後片付けという面倒な部分がフックの中に隠れ、使う側は1行になります。

カスタムフック=ロジックの部品

見た目の部品がコンポーネントなら、「動きの部品」がカスタムフックです。例では幅を追いかける処理を丸ごと閉じ込めています。

use始まりは決まりごと

フックには使い方のルールがあり、useという名前がその目印です。飾りではありません。

2つの効能

①複数のコンポーネントで同じ処理を共有できる ②表示とロジックが分かれて読みやすくなる。この学習アプリの進捗管理もuseProgressというカスタムフックです。

ステップ 1 / 3

※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。