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

Reactのリストとキーを完全理解!リストレンダリングと状態管理の組み合わせ入門

リストレンダリングと状態管理の組み合わせ
リストレンダリングと状態管理の組み合わせ

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

生徒

「Reactでリストを表示するのは分かってきましたが、ボタンを押して中身を変えるときはどうするんですか?」

先生

「その場合は、リスト表示と状態管理を組み合わせて考えます」

生徒

「状態管理って難しそうです…」

先生

「仕組みを一つずつ見ていけば、身近な操作と同じだと分かりますよ」

1. リストレンダリングと状態管理とは

1. リストレンダリングと状態管理とは
1. リストレンダリングと状態管理とは

Reactで画面に複数のデータを 並べて表示することを リストレンダリングと呼びます。

一方で、 画面の内容を記憶して 変化させる仕組みが 状態管理です。

状態とは、 今どんなデータを 表示しているかを Reactが覚えている メモのようなものです。

2. 状態を使わないリスト表示の基本

2. 状態を使わないリスト表示の基本
2. 状態を使わないリスト表示の基本

まずは、 状態を使わない シンプルな リスト表示を見ます。


function App() {
  const fruits = ["りんご", "みかん", "バナナ"];

  return (
    <ul>
      {fruits.map(fruit => (
        <li key={fruit}>{fruit}</li>
      ))}
    </ul>
  );
}
(画面に果物の名前が一覧で表示されます)

この方法は 表示するだけなら 十分ですが、 中身を変えることは できません。

3. 状態管理をイメージで理解する

3. 状態管理をイメージで理解する
3. 状態管理をイメージで理解する

状態管理は、 ホワイトボードに 書いた内容を 消したり書き直したり するイメージです。

書き換えた瞬間に、 それを見ている人全員に 新しい内容が 見えるようになります。

Reactでは、 useStateという仕組みで この役割を実現します。

4. 状態を使ってリストを表示する

4. 状態を使ってリストを表示する
4. 状態を使ってリストを表示する

次に、 状態として リストを管理する 例を見てみます。


import React, { useState } from "react";

function App() {
  const [items, setItems] = useState(["ねこ", "いぬ"]);

  return (
    <ul>
      {items.map(item => (
        <li key={item}>{item}</li>
      ))}
    </ul>
  );
}

export default App;
(画面に「ねこ」「いぬ」が表示されます)

この場合、 リストの中身は 状態として Reactが覚えています。

5. ボタン操作でリストを変更する

5. ボタン操作でリストを変更する
5. ボタン操作でリストを変更する

状態管理の強みは、 ユーザーの操作で 画面が変わることです。

ボタンを押して リストに データを追加する 例を見ます。


import React, { useState } from "react";

function App() {
  const [items, setItems] = useState(["パン", "ごはん"]);

  const addItem = () => {
    setItems([...items, "めん"]);
  };

  return (
    <div>
      <button onClick={addItem}>追加</button>
      <ul>
        {items.map(item => (
          <li key={item}>{item}</li>
        ))}
      </ul>
    </div>
  );
}

export default App;
(ボタンを押すとリストに「めん」が追加されます)

6. keyが重要になる理由

6. keyが重要になる理由
6. keyが重要になる理由

リストと状態管理を 組み合わせると、 表示内容が 頻繁に変わります。

そのとき、 Reactがどの要素が どれなのかを 判断するために keyを使います。

keyは、 名札のような役割を持ち、 要素の入れ替えや追加を 正しく処理するために 欠かせません。

7. 状態管理とリスト操作の注意点

7. 状態管理とリスト操作の注意点
7. 状態管理とリスト操作の注意点

状態の配列は、 直接書き換えず、 新しい配列を 作って更新します。

これは、 Reactが変化を 正しく検知するために 必要な考え方です。

コピーして追加する、 という意識を持つと 安定した動作になります。

8. 初心者が最初に理解したいポイント

8. 初心者が最初に理解したいポイント
8. 初心者が最初に理解したいポイント

リスト表示は 配列を並べること、 状態管理は 画面の記憶だと 考えると分かりやすいです。

この二つを 組み合わせることで、 動きのある 画面を作れるようになります。

カテゴリの一覧へ
新着記事
New1
React
ReactのState更新方法を完全ガイド!初心者でもわかるsetStateとuseStateの使い方
New2
React
JSXとJavaScript式の組み合わせ方を完全解説!初心者でもわかる中括弧の使い方
New3
React
ReactのContext.Providerでデータを渡す仕組みを完全解説!初心者でもわかるProviderの使い方
New4
React
ReactのState更新が非同期で行われる理由と注意点をやさしく解説!初心者でもわかるStateの扱い方
人気記事
No.1
Java&Spring記事人気No1
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.2
Java&Spring記事人気No2
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.3
Java&Spring記事人気No3
React
ReactのJSXとJavaScriptの違いを完全ガイド!初心者でもわかるReactのJSX入門
No.4
Java&Spring記事人気No4
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.5
Java&Spring記事人気No5
React
コンポーネントの作り方!基本的な書き方と使い方をReact初心者向けに解説
No.6
Java&Spring記事人気No6
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.7
Java&Spring記事人気No7
Next.js
Next.jsのRoute Groupの使い方を完全ガイド!App Routerでフォルダ構成を整理する方法
No.8
Java&Spring記事人気No8
React
Reactはフレームワーク?ライブラリ?Reactの正しい位置づけと役割を初心者向けに解説!