React実践 ・ Chapter 8

検索と再取得 stateの変化でAPIを叩き直す

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

ここまでのデータ取得は、すべて「開いたとき1回だけ」でした。でも実際のアプリはもっと動きます——検索欄に入力すると結果が変わる、タブを切り替えると中身が変わる。つまり「ユーザーの操作に応じて、取得をやり直す」。今日はチャプター1からずっと [] のままだった、useEffectの第2引数の正体を明かします。

依存配列——「これが変わったら、もう一回」

useEffectの第2引数は依存配列と呼ばれます。正体はシンプルで、「この配列に入れた値が変わるたび、中の仕事をもう一度実行する」という監視リストです。

useEffect(() => {
  // やる仕事
}, [userId]);   // ← userIdが変わるたびに、再実行

これで全パターンの意味が繋がります:

・[]:監視対象なし=変わるものがない=初回の1回だけ(チャプター1からやってきたこと)

・[userId]:初回+userIdが変わるたび

・[userId, page]:複数も監視できる。どれかが変われば再実行

「初回だけ」は特別ルールではなく、依存配列の自然な帰結だった——種明かしはこれだけです。

ユーザーを切り替えて表示する

実物で見ます。「ユーザー1」「ユーザー2」のボタンで、表示するユーザーの詳細を切り替える画面です。

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

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

料金プランを見る