カテゴリ: React 更新日: 2026/04/10

Reactのリストとkeyを完全解説!初心者でもわかるユニークなIDをkeyに使うベストプラクティス

ユニークなIDをkeyに使うベストプラクティス
ユニークなIDをkeyに使うベストプラクティス

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

生徒

「Reactでリストを表示するときに、keyって必ず書かないといけないんですか?」

先生

「はい、Reactではリスト表示のときにkeyはとても大切な役割を持っています。」

生徒

「数字とか名前をそのまま使ってもいいんですか?」

先生

「使えますが、正しい選び方をしないと画面表示がおかしくなることがあります。順番に見ていきましょう。」

1. Reactのリスト表示とkeyの基本

1. Reactのリスト表示とkeyの基本
1. Reactのリスト表示とkeyの基本

Reactでは、複数のデータをまとめて画面に表示したいときに「リスト表示」を使います。 リスト表示とは、同じ形の部品をデータの数だけ並べて表示する仕組みです。 たとえば、買い物リスト、名前の一覧、メニュー表などを思い浮かべてください。

Reactでリストを表示するとき、必ず登場するのが「key属性」です。 keyとは、Reactがそれぞれの表示項目を見分けるための目印のようなものです。 人間でいうと、名札や社員番号のような役割を持っています。

このkeyがあるおかげで、Reactは「どの表示が追加されたのか」「どれが消えたのか」「どれが入れ替わったのか」を正しく判断できます。 そのため、keyの付け方はReactの動作や画面の安定性に大きく影響します。

2. ユニークなIDとは何かをやさしく理解しよう

2. ユニークなIDとは何かをやさしく理解しよう
2. ユニークなIDとは何かをやさしく理解しよう

keyに使う値としてよく出てくる言葉が「ユニークなID」です。 ユニークとは「他と重ならない」という意味で、IDは「識別番号」のことです。 つまり、ユニークなIDとは「一つひとつが必ず違う番号や文字列」を指します。

たとえば、学校の出席番号を考えてみてください。 同じクラスの中で、同じ番号の人が二人いると混乱しますよね。 Reactのkeyも同じで、同じkeyがあるとReactが正しく判断できなくなります。

データベースやAPIから取得したデータには、idという項目が用意されていることが多く、 これが最初からユニークなIDとして設計されています。 Reactでは、このidをkeyに使うのが基本中の基本です。

3. ユニークなIDをkeyに使う基本例

3. ユニークなIDをkeyに使う基本例
3. ユニークなIDをkeyに使う基本例

import React from "react";

function App() {
  const users = [
    { id: 1, name: "たろう" },
    { id: 2, name: "はなこ" },
    { id: 3, name: "じろう" }
  ];

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

export default App;
(画面には「たろう」「はなこ」「じろう」とリスト形式で表示されます)

この例では、usersというデータの中にidがあり、そのidをkeyに使っています。 それぞれのidは重ならないため、Reactは安心して画面を管理できます。 これがユニークなIDをkeyに使う最も基本的で安全な書き方です。

4. なぜユニークなIDがベストプラクティスなのか

4. なぜユニークなIDがベストプラクティスなのか
4. なぜユニークなIDがベストプラクティスなのか

ベストプラクティスとは、「多くの人が使っていて、失敗が少ないおすすめの方法」という意味です。 ReactでkeyにユニークなIDを使うことがベストプラクティスと呼ばれるのには理由があります。

Reactは画面を効率よく更新するために、前の画面と次の画面を比べています。 このとき、keyが変わらなければ「同じ要素」と判断します。 ユニークなIDはデータが変わらない限り一定なので、Reactの判断がとても正確になります。

逆に、正しくないkeyを使うと、入力した文字が消えたり、 別の行に移動したりといった不思議な動きが起こることがあります。 初心者ほど原因が分からず混乱しやすいため、最初から正しい方法を知っておくことが大切です。

5. フォーム付きリストでもIDをkeyに使う例

5. フォーム付きリストでもIDをkeyに使う例
5. フォーム付きリストでもIDをkeyに使う例

import React, { useState } from "react";

function App() {
  const [items] = useState([
    { id: "a1", text: "りんご" },
    { id: "b2", text: "みかん" },
    { id: "c3", text: "ぶどう" }
  ]);

  return (
    <div>
      {items.map(item => (
        <div key={item.id}>
          <input type="checkbox" /> {item.text}
        </div>
      ))}
    </div>
  );
}

export default App;
(果物の名前とチェックボックスが縦に並んで表示されます)

入力フォームがある場合でも、ユニークなIDをkeyに使うことで表示が安定します。 チェックを入れた状態が勝手に変わるといったトラブルを防ぐことができます。

6. 自分でIDを作る場合の考え方

6. 自分でIDを作る場合の考え方
6. 自分でIDを作る場合の考え方

データに最初からidがない場合でも、可能であればデータを作る段階でIDを用意しましょう。 文字列と数字を組み合わせたものでも問題ありません。 大切なのは「同じ一覧の中で絶対に重ならないこと」です。

表示の順番や見た目ではなく、データそのものを表す値をkeyにする意識を持つと、 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とは?シングルページアプリのルーティングを初心者向けにわかりやすく解説