Ceeds Academy教材アプリ教材・症状語・タグで検索
索引グラフ試す
アプリFW/ライブラリ▸React

React: データ取得(useEffect・読込/成功/失敗の3状態)

hands-on所要 30分最新草稿
前提: React: イベントとフォーム→次: Next.js: App Router の基礎(ルーティング)
意味グラフ(この教材と内容的に近い教材・1ネスト)
例え(Analogies)
データ取得=料理を注文して待つ

API取得はレストランで注文するようなもの。「読込中(待ち)」「成功(出てくる)」「失敗(来ない)」の3状態を必ず用意する。

概要

📍 app-frameworks ▸ React ▸ データ取得 | 種別: hands-on | facts_as_of 2026-06(React 19)

公式ドキュメント — hands-on

🎞 スライド

データ取得=3状態を必ず扱う

読込/成功/失敗(テキスト図)

[画面表示] ──useEffect──▶ [fetch]
├─ 成功 → データを表示
├─ 失敗 → エラーを表示
└─ 取得中 → 読込中... を表示

コツ

  • useEffect で副作用(取得)を実行
  • 依存配列 [] で初回のみ
  • リストには key
—
出典(sources)

react.dev (Synchronizing with Effects) ; MDN fetch ; React 19 / 2026-06確認

確認問題(Review-Questions)
useEffectが無限ループする主因は?択一
基礎公式
解答・解説▾ 開く

依存配列の設定ミス([] や適切な依存を指定する)。

データ取得で必ず扱うべき3状態は?記述
基礎公式
解答・解説▾ 開く

読込中・成功・失敗。

運営メモ・チェックリスト(配信除外)

🔒 運営メモ(公開除外)

  • React 19。requires: react-03-events-forms(+ts-06-async を references)。unlocks: nextjs-01-routing。taxonomy=react。卒業課題が uses_units で使う。
  • 例え=Analogies(料理を注文して待つ:読込中/出てくる/ミス)。確認問題=Review-Questions。
目次
例え概要公式ドキュメント出典確認問題
鮮度
最新
更新: 2026-06-15
次回棚卸し: 2026-12-15
周期: 6か月
版: React 19
取得→読込中/成功/失敗の分岐
取得→読込中/成功/失敗の分岐

概要

API からデータを取得して表示する。読込中 / 成功 / 失敗 の3状態を必ず扱うのがコツ。取得は useEffect の中で行う。

公式ドキュメント準拠(React 19)

function Users() {
  const [data, setData] = useState<User[] | null>(null);
  const [error, setError] = useState<string | null>(null);

  useEffect(() => {
    fetch("/api/users")
      .then((r) => r.json())
      .then(setData)
      .catch(() => setError("失敗"));
  }, []);   // 依存配列

  if (error) return <p>{error}</p>;        // 失敗
  if (!data) return <p>読込中...</p>;       // 読込中
  return <ul>{data.map((u) => <li key={u.id}>{u.name}</li>)}</ul>;  // 成功
}
  • useEffect で副作用(取得)。3状態を表示。リストには key。

出典: react.dev: Synchronizing with Effects

🧭 誤解訂正集

よくある誤解 正しい理解
成功だけ表示すればよい 読込中/成功/失敗の3状態を扱う
useEffect の依存配列は省略してよい 省略/設定ミスで無限ループ([] や適切な依存を置く)
リストの key は無くてよい 各要素に一意な key が必要

📖 用語

  • useEffect … 描画後に副作用(データ取得等)を実行するフック。
  • 依存配列 … useEffect の第2引数。[] で初回のみ実行。
  • 3状態(読込/成功/失敗) … 取得UIで必ず扱う表示の分岐。
  • key … リスト要素を区別する一意の識別子。

✅ 確認の目安(can-do)

useEffect でのデータ取得と読込/成功/失敗の3状態表示を説明でき、**「なぜ無限ループするか・key が要るか」**を判断できる。

⚠️ エラー復旧集

症状 原因 復旧
無限ループ 依存配列の設定ミス [] や適切な依存を設定
key warning リストにkey無し 各要素に一意なkey