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

Reactのリストとkeyをやさしく解説!初心者でもわかるリストアイテムをコンポーネントに分割する方法

リストアイテムをコンポーネントに分割して整理する方法
リストアイテムをコンポーネントに分割して整理する方法

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

生徒

「Reactでリスト表示はできるようになったんですが、コードがどんどん長くなってきました…」

先生

「それはリストアイテムを一つのコンポーネントにまとめると、かなり整理できます。」

生徒

「コンポーネントに分けるって、難しそうなイメージがあります。」

先生

「考え方はシンプルです。部品として切り分ける感覚で見ていきましょう。」

1. リスト表示がごちゃごちゃする理由

1. リスト表示がごちゃごちゃする理由
1. リスト表示がごちゃごちゃする理由

Reactで配列をmapを使って表示すると、最初はとても分かりやすく感じます。 しかし、表示内容が増えてくると、一つのコンポーネントの中に多くの処理やHTMLが書かれてしまいます。

これは、机の上に物を全部広げて作業している状態に似ています。 どこに何があるか分かりにくく、修正もしづらくなります。

こうした問題を解決する方法が「コンポーネントに分割する」という考え方です。 Reactでは、画面の部品を小さく分けて整理することが基本になります。

2. コンポーネントとは何か

2. コンポーネントとは何か
2. コンポーネントとは何か

コンポーネントとは、画面の一部分を担当する部品のことです。 ボタン、見出し、リストの一行など、再利用できる単位で作ります。

初心者の方は「新しいファイルを作るのは大変そう」と感じるかもしれませんが、 実際にはコードを短くし、読みやすくするための仕組みです。

特にリスト表示では「同じ形の表示を何度も繰り返す」ため、 コンポーネント分割との相性がとても良いです。

3. コンポーネントに分割しない場合の例

3. コンポーネントに分割しない場合の例
3. コンポーネントに分割しない場合の例

import React from "react";

function App() {
  const fruits = [
    { id: 1, name: "りんご" },
    { id: 2, name: "みかん" },
    { id: 3, name: "ぶどう" }
  ];

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

export default App;
(画面に果物の名前が縦に並んで表示されます)

このコードはシンプルですが、表示内容が増えるとmapの中がどんどん長くなります。 その結果、どこを修正すればよいのか分かりにくくなります。

4. リストアイテムをコンポーネントに分割する

4. リストアイテムをコンポーネントに分割する
4. リストアイテムをコンポーネントに分割する

次に、リストの一行を専用のコンポーネントとして切り出してみます。 ここでは「FruitItem」という部品を作ります。


import React from "react";

function FruitItem({ name }) {
  return <li>{name}</li>;
}

export default FruitItem;

このコンポーネントは「名前を受け取って表示する」だけの役割を持っています。 役割がはっきりしているため、読みやすくなります。

5. 分割したコンポーネントを使う

5. 分割したコンポーネントを使う
5. 分割したコンポーネントを使う

import React from "react";
import FruitItem from "./FruitItem";

function App() {
  const fruits = [
    { id: 1, name: "りんご" },
    { id: 2, name: "みかん" },
    { id: 3, name: "ぶどう" }
  ];

  return (
    <ul>
      {fruits.map(fruit => (
        <FruitItem key={fruit.id} name={fruit.name} />
      ))}
    </ul>
  );
}

export default App;
(先ほどと同じように果物の名前が表示されます)

見た目の結果は同じですが、Appコンポーネントの中身はすっきりしました。 表示の詳細はFruitItemに任せています。

6. keyはどこに書くのか

6. keyはどこに書くのか
6. keyはどこに書くのか

初心者がよく迷うポイントが、keyをどこに書くかです。 keyはmapで並べている側、つまり親のコンポーネントで指定します。

子コンポーネントの中にはkeyを書きません。 「どの部品を並べているのか」をReactに伝える役割だからです。

このルールを覚えておくと、エラーや警告を避けやすくなります。

7. 少し表示を増やした別パターン

7. 少し表示を増やした別パターン
7. 少し表示を増やした別パターン

import React from "react";

function UserItem({ user }) {
  return (
    <li>
      {user.name}(年齢:{user.age})
    </li>
  );
}

export default UserItem;

このように、オブジェクトごと渡して表示内容を増やすこともできます。 表示が複雑になるほど、コンポーネント分割の効果が大きくなります。

8. コンポーネント分割の考え方のコツ

8. コンポーネント分割の考え方のコツ
8. コンポーネント分割の考え方のコツ

リストアイテムをコンポーネントに分けるときは、 「一行分を一つの部品にする」と考えると分かりやすくなります。

現実世界で言えば、同じ形のお弁当箱を並べているようなイメージです。 中身は違っても、箱の形は同じです。

Reactでは、この考え方がとても重要です。 最初は小さな分割でも十分なので、少しずつ慣れていきましょう。

カテゴリの一覧へ
新着記事
New1
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
New2
React
PropsとStateの違いを徹底解説!使い分けのポイントまとめ
New3
React
Reactのフォーム入力を再利用しよう!初心者でもわかるフィールドコンポーネント化の考え方
New4
React
Reactでできること一覧!初心者でもわかるWebアプリ・スマホアプリ・PWAの活用方法
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.3
Java&Spring記事人気No3
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.4
Java&Spring記事人気No4
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.5
Java&Spring記事人気No5
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.6
Java&Spring記事人気No6
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.7
Java&Spring記事人気No7
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.8
Java&Spring記事人気No8
React
Reactのカードコンポーネントを汎用的に設計する方法!初心者でもわかる再利用の考え方