カテゴリ: React 更新日: 2026/01/24

Reactのリストとキーを完全解説!初心者でもわかる動的なリストの追加・削除

動的にリストを追加・削除する処理の書き方
動的にリストを追加・削除する処理の書き方

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

生徒

「Reactでリストを表示できるようになったんですが、あとから追加したり消したりもできますか?」

先生

「できます。Reactでは画面の表示を、データの変化に合わせて動的に変えられます。」

生徒

「動的っていうのが、まだよく分からないです…」

先生

「ボタンを押したら増える、削除したら消える、そんな仕組みを一緒に作ってみましょう。」

1. 動的にリストを操作するとは

1. 動的にリストを操作するとは
1. 動的にリストを操作するとは

動的にリストを操作するとは、画面を読み直さなくても、 データの追加や削除に合わせて表示が変わることを指します。

現実の例で言うと、紙のメモに書いた買い物リストを、 鉛筆で書き足したり消したりするようなものです。

Reactでは、この仕組みを「状態」という考え方で実現します。 状態とは、今の画面の元になる情報のことです。

2. useStateでリストを管理する基本

2. useStateでリストを管理する基本
2. useStateでリストを管理する基本

Reactでデータを変化させるときは、useStateという仕組みを使います。 useStateは「今の値」と「変更するための道具」をセットで持ちます。


import React, { useState } from "react";

function App() {
  const [items, setItems] = useState(["りんご", "みかん"]);

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

export default App;
(画面に「りんご」「みかん」が表示されます)

このitemsがリストの元になります。 この中身を変えると、画面の表示も一緒に変わります。

3. リストに項目を追加する方法

3. リストに項目を追加する方法
3. リストに項目を追加する方法

次は、ボタンを押したらリストに項目を追加する方法です。 新しいデータを、今の配列に足してあげます。


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, index) => (
          <li key={index}>{item}</li>
        ))}
      </ul>
    </div>
  );
}

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

「...」は、今あるデータをそのままコピーするための書き方です。 元のリストを壊さずに、新しいリストを作るために使います。

4. リストから項目を削除する方法

4. リストから項目を削除する方法
4. リストから項目を削除する方法

次に、リストから特定の項目を削除してみましょう。 filterという仕組みを使うと、残したいものだけを選べます。


import React, { useState } from "react";

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

  const deleteItem = (target) => {
    setItems(items.filter(item => item !== target));
  };

  return (
    <ul>
      {items.map((item, index) => (
        <li key={index}>
          {item}
          <button onClick={() => deleteItem(item)}>削除</button>
        </li>
      ))}
    </ul>
  );
}

export default App;
(削除ボタンを押すと、その項目が消えます)

filterは「条件に合うものだけを残す」仕組みです。 消したいもの以外を集め直すことで、結果的に削除できます。

5. keyが重要な理由

5. keyが重要な理由
5. keyが重要な理由

リストを扱うときは、必ずkeyを指定します。 keyは、Reactが「どの項目がどれか」を見分けるための目印です。

例えるなら、同じ名前の人がいても、 番号があれば区別できるようなものです。

動的に追加や削除をする場合は、 できるだけ番号や識別用の値をkeyに使うと安心です。

6. 初心者が混乱しやすいポイント

6. 初心者が混乱しやすいポイント
6. 初心者が混乱しやすいポイント

よくある間違いは、配列を直接書き換えてしまうことです。 Reactでは、新しい配列を作って状態を更新します。

また、追加や削除の処理は「データをどう変えるか」だけを考え、 表示はmapに任せると、頭の中が整理しやすくなります。

7. 動的リスト操作の考え方のコツ

7. 動的リスト操作の考え方のコツ
7. 動的リスト操作の考え方のコツ

動的なリスト操作は、難しい魔法ではありません。 「状態が変わると画面が変わる」という一つのルールだけです。

まずは追加、次に削除と、一つずつ試してみることで、 Reactの仕組みが自然と身についていきます。

紙のリストを消しゴムで消したり書き足したりする感覚で、 データを操作していきましょう。

カテゴリの一覧へ
新着記事
New1
React
React RouterのLinkコンポーネントの使い方を完全解説!初心者でもわかるページ遷移の基本
New2
React
Reactで学ぶPropsとStateを型安全にテストする方法!初心者でも安心できるテストの考え方
New3
Next.js
Next.js App Routerとは?Next.js 13以降の新標準を初心者向けにやさしく解説
New4
Next.js
Next.js Linkコンポーネントでページ遷移を高速化する方法!初心者向け解説
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
Reactの学習ロードマップ!初心者が最短で習得する流れを完全ガイド
No.4
Java&Spring記事人気No4
React
React Context APIのデバッグ方法を完全解説!React DevToolsで中身を丸見えにする方法
No.5
Java&Spring記事人気No5
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.6
Java&Spring記事人気No6
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介
No.7
Java&Spring記事人気No7
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.8
Java&Spring記事人気No8
React
React Routerとは?シングルページアプリのルーティングを初心者向けにわかりやすく解説