React実践 ・ Chapter 4

合体 useEffect+fetch+state

コード演習 ・ 冒頭を無料公開中

道具は3つ揃いました。「表示された後に動かす」useEffect(Ch1)、「待つ」await(Ch2)、「取ってくる」fetch(Ch3)。今日はこの3つを1つのコンポーネントに合体させます。完成するのは「開いたら、APIからユーザー一覧が自動で表示される画面」——実務のフロントエンドで一番よく書く形、いわば定食です。

完成形を先に見る

今日は先に全体を見せて、それから解剖します。

sample.tsx
import { useState, useEffect } from "react";

type User = {
  id: number;
  name: string;
};

const UserList = () => {
  const [users, setUsers] = useState<User[]>([]);

  useEffect(() => {
    const load = async () => {
      const response = await fetch(
        "https://jsonplaceholder.typicode.com/users"
      );
      const data = await response.json();
      setUsers(data);
    };
    load();
  }, []);

  return (
    <ul>
      {users.map((user) => (
        <li key={user.id}>{user.name}</li>
      ))}
    </ul>
  );
};

コード演習はブラウザ上でそのまま実行できます

本文の残り、エディタ・テスト実行・解答コード・ヒントはプラン加入後に利用できます。

料金プランを見る