カテゴリ: React 更新日: 2026/02/07

Reactのカスタムフックで複数APIを同時に呼び出す方法を解説!初心者でも理解できるAPI管理の基本

カスタムフックで複数APIを同時に呼び出す方法
カスタムフックで複数APIを同時に呼び出す方法

先生と生徒の会話形式で理解しよう

生徒

「Reactでカスタムフックを使ってAPIを呼び出す方法ってありますか?」

先生

「もちろんあります。カスタムフックを作ると、APIの呼び出しを何度も同じように書かなくて済むので便利なんです。」

生徒

「じゃあ複数のAPIを同時に呼び出すこともできますか?」

先生

「はい、できますよ!しかもJavaScriptのPromiseという仕組みを使えば、同時にリクエストして結果をまとめて受け取れるんです。」

1. ReactとAPIの関係を理解しよう

1. ReactとAPIの関係を理解しよう
1. ReactとAPIの関係を理解しよう

Reactは、ユーザーに画面を表示するライブラリですが、その画面に表示するデータはサーバーや外部サービスから取得する必要があります。このとき使うのが「API」です。APIは、アプリケーションとサービスの間でデータをやり取りする仕組みで、例えば天気情報やニュース記事などを取得するときに使います。

通常、APIを呼び出すにはfetchやaxiosといったツールを使います。しかし同じ処理を何度も書くのは大変なので、Reactでは「カスタムフック」を作ってAPIの呼び出しをまとめて管理するのが一般的です。

2. カスタムフックとは?初心者向けに解説

2. カスタムフックとは?初心者向けに解説
2. カスタムフックとは?初心者向けに解説

カスタムフックとは、自分で作れる特別な関数のことです。ReactにはuseStateやuseEffectといった「フック」がありますが、それを組み合わせて自分専用の便利な処理を作ることができます。

たとえば、APIを呼び出して結果をstateに保存し、読み込み中やエラーを管理する処理をまとめてカスタムフックにすると、どのコンポーネントでも簡単に使い回せるようになります。

3. 複数APIを同時に呼び出す仕組み

3. 複数APIを同時に呼び出す仕組み
3. 複数APIを同時に呼び出す仕組み

複数のAPIを同時に呼び出すには、JavaScriptのPromise.allという仕組みを使います。Promise.allは「すべてのAPIの処理が終わるまで待ってから結果をまとめて返す」という便利な機能です。

これをカスタムフックに組み込むことで、複数のデータを一度に取得し、効率よく画面に表示できるようになります。

4. 実際にカスタムフックを作ってみよう

4. 実際にカスタムフックを作ってみよう
4. 実際にカスタムフックを作ってみよう

ここでは例として、ユーザー情報と記事情報を同時に取得するカスタムフックを作ります。


import { useState, useEffect } from "react";

function useMultipleAPIs() {
  const [data, setData] = useState({ users: null, posts: null });
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);

  useEffect(() => {
    const fetchAPIs = async () => {
      try {
        const [usersRes, postsRes] = await Promise.all([
          fetch("https://jsonplaceholder.typicode.com/users"),
          fetch("https://jsonplaceholder.typicode.com/posts")
        ]);
        const users = await usersRes.json();
        const posts = await postsRes.json();
        setData({ users, posts });
      } catch (err) {
        setError(err);
      } finally {
        setLoading(false);
      }
    };
    fetchAPIs();
  }, []);

  return { data, loading, error };
}

export default useMultipleAPIs;
(このカスタムフックを使えば、ユーザー情報と記事情報を同時に取得し、画面に表示する準備ができます)

5. カスタムフックをコンポーネントで使う方法

5. カスタムフックをコンポーネントで使う方法
5. カスタムフックをコンポーネントで使う方法

作成したカスタムフックは、通常のフックと同じようにコンポーネントの中で呼び出して使います。


import React from "react";
import useMultipleAPIs from "./useMultipleAPIs";

function App() {
  const { data, loading, error } = useMultipleAPIs();

  if (loading) return <p>読み込み中です...</p>;
  if (error) return <p>エラーが発生しました: {error.message}</p>;

  return (
    <div>
      <h1>ユーザー一覧</h1>
      <ul>
        {data.users.map(user => (
          <li key={user.id}>{user.name}</li>
        ))}
      </ul>

      <h1>記事一覧</h1>
      <ul>
        {data.posts.slice(0, 5).map(post => (
          <li key={post.id}>{post.title}</li>
        ))}
      </ul>
    </div>
  );
}

export default App;
(画面にユーザー一覧と記事一覧が同時に表示されます)

6. 複数APIを同時に呼び出すメリット

6. 複数APIを同時に呼び出すメリット
6. 複数APIを同時に呼び出すメリット

複数のAPIを同時に呼び出すことで、通信時間を短縮できるという大きなメリットがあります。もし一つずつ順番に呼び出したら、最初の処理が終わるまで次が始まらないので全体の待ち時間が長くなってしまいます。Promise.allを使えば同時に処理できるので、結果を効率よく取得できます。

また、カスタムフックにまとめることで、複数のコンポーネントから同じ処理を再利用でき、コードの見通しもよくなります。

7. エラー処理や拡張性について

7. エラー処理や拡張性について
7. エラー処理や拡張性について

現実のアプリケーションでは、複数APIのうち一つが失敗することもあります。その場合でもエラーをキャッチして適切にメッセージを表示できるようにしておくと、ユーザーにとって使いやすいアプリになります。

さらに、APIが増えてもPromise.allに追加するだけで簡単に対応できるので、拡張性の高い仕組みを作れます。

カテゴリの一覧へ
新着記事
New1
React
Reactのカスタムフックで複数APIを同時に呼び出す方法を解説!初心者でも理解できるAPI管理の基本
New2
Next.js
Next.jsの「use client」の書き方を完全ガイド!初心者でもわかるClient Componentsの使いどころ
New3
React
Reactのライフサイクルでよくあるバグとデバッグ方法を初心者向けに解説
New4
React
TypeScript対応Reactプロジェクトの作成方法を完全ガイド!初心者でもわかるReactとTypeScriptの基本
人気記事
No.1
Java&Spring記事人気No1
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.2
Java&Spring記事人気No2
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.4
Java&Spring記事人気No4
Next.js
Next.jsのappディレクトリの役割を完全解説!初心者でもわかるApp Router入門
No.5
Java&Spring記事人気No5
React
ReactのPropsを使ってコンポーネントの表示を動的に切り替える方法を解説!初心者でもわかるReact入門
No.6
Java&Spring記事人気No6
React
Reactの環境構築とは?初心者でもできるセットアップ手順まとめ
No.7
Java&Spring記事人気No7
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.8
Java&Spring記事人気No8
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説