前回:クリックや入力に反応する!Reactのイベントハンドリング基礎では、ユーザーの動きを「きっかけ」にして画面を動かす方法を学びました。
さて、本物のWebアプリを想像してみましょう。ToDoリスト、商品一覧、SNSの投稿……。これらはすべて「データの集まり」です。100個の投稿があるとき、100回コピー&ペーストしてコードを書くのは現実的ではありませんよね。
2026年現在、React開発で大量のデータをスマートに表示するための最強の武器、map(マップ)関数をマスターしましょう!
1. JavaScriptの最強兵器「map関数」とは?
Reactでリストを作る際、HTMLの for文 は使いません。代わりにJavaScriptの map メソッド を使います。
- mapの役割: 配列の中身を1つずつ取り出し、加工して「新しい配列」を作る。
- Reactでの活用: 「データの配列」を「JSX(タグ)の配列」に変換する。
この「データ」を「見た目」へ変換するスピード感こそが、Reactが愛される理由の一つです。
2. 忘れるとエラーになる「key(キー)属性」
リスト表示をする際、Reactには絶対守らなければならないルールがあります。それは、ループで書き出す一番外側のタグに key という特殊な目印をつけることです。
- なぜ必要か?: Reactは「どの項目が追加・削除・変更されたか」をこの
keyで見張っています。 - 何を入れるか?: 他と被らない「一意のID(識別子)」を入れます。
2026年の最新のReactでも、この key を忘れるとブラウザのコンソールに警告が表示され、パフォーマンス低下の原因になります。
3. 【実践】フルーツリストを一瞬で作ろう
今回は、配列に入ったフルーツの名前を、一気にリスト表示するサンプルを作ります。 第2回の環境で作成した App.jsx を書き換えてみましょう。
App.jsx(最小構成版)
JavaScript
import React from 'react';
export default function App() {
// 1. 表示したいデータの配列
const fruits = ["りんご", "バナナ", "オレンジ", "メロン"];
return (
<div>
<h1>今日のフルーツリスト</h1>
{/* 2. JavaScriptの map 関数を使ってループする */}
<ul>
{fruits.map((fruit, index) => (
// 3. 鉄則:一番外側のタグに key をつける
// 本来はIDが望ましいですが、練習用として index(番号)を使います
<li key={index}>
{fruit} を食べる
</li>
))}
</ul>
<p>※配列にデータを追加するだけで、リストは自動で増えます。</p>
</div>
);
}
4. コードの解説(JavaScript & React)
JavaScriptのポイント
map((要素, 番号) => ...): 配列fruitsの中身を、1つずつfruitという名前で取り出しています。- アロー関数の( ):
=> ( ... )のように丸括弧を使うと、「中身をそのまま return(返却)する」という短い書き方になります。JSXを返すときはこの書き方が定番です。
Reactのポイント
{ }の中で実行: 第3回のJSXルールで学んだ通り、JavaScriptを実行するには波括弧{ }が必要です。その中でmapを呼び出すのがReactの王道スタイルです。- 第4回のコンポーネントとの組み合わせ: 今回は
<li>を直接書きましたが、実際には<ProductCard key={...} />のように自作コンポーネントをループさせることが多いです。
5. 2026年の学び:indexをkeyに使うのは「最終手段」
今回のサンプルでは key={index}(配列の番号)を使いました。しかし、2026年の現場では「データの並び替えや削除」が発生する場合、index を key にするのは推奨されません。
可能な限り、key={item.id} のように、データ自体が持っている固有の番号を使う癖をつけましょう。
今回のまとめ
- リスト表示には、JavaScriptの
map関数 を使う。 { 配列.map(...) }の形でJSXの中に埋め込む。- ループで出す要素には、必ず
key属性 をつける。 keyはReactが「画面の変更」を正しく検知するための大切な目印。
次回予告:表示したり消したりを自由自在に
リストが表示できるようになったら、次は「特定の条件のときだけ表示する」テクニックを学びましょう。 「ログインしている時だけログアウトボタンを出す」「データがない時は『空です』と表示する」……。
次回、「第9回:条件分岐(if文・三項演算子)で表示を切り替える『条件付きレンダリング』」。 ユーザーの状態に合わせて、画面を「出し分け」する魔法を伝授します。お楽しみに!
本日の宿題: 配列 fruits の中身を増やしたり、好きな名前に変えたりしてみてください。保存した瞬間、リストが同期して増える感覚、掴めましたか?


コメント