Reactのリストとキーをやさしく理解!リストレンダリングとアニメーションの組み合わせ入門
生徒
「Reactでリストを表示するとき、動きのあるアニメーションも付けられますか?」
先生
「できます。リストとアニメーションは相性がとても良いです」
生徒
「でも、動くと急に難しくなりそうで不安です…」
先生
「大丈夫です。順番に考えれば、リスト表示の延長として理解できます」
1. リストレンダリングとは何か
リストレンダリングとは、 複数のデータをまとめて画面に表示する仕組みです。
買い物メモや、 出席番号の一覧を紙に書くイメージをすると分かりやすいです。 一つ一つ同じ形で並べます。
Reactでは、 配列と呼ばれる箱の集まりを使い、 それを画面に並べて表示します。
2. リスト表示にkeyが必要な理由
Reactでリストを表示するときは、 keyという目印を付けます。
keyは、 人の名札のような役割を持ち、 どの行がどのデータなのかを Reactに教えています。
このkeyがあるからこそ、 アニメーションを付けても 正しく動きを判断できます。
3. シンプルなリスト表示の基本例
function App() {
const fruits = ["りんご", "みかん", "ぶどう"];
return (
<ul>
{fruits.map(fruit => (
<li key={fruit}>{fruit}</li>
))}
</ul>
);
}
このように、 同じ形の表示を 繰り返し作るのが リストレンダリングです。
4. アニメーションとは何か
アニメーションとは、 表示が変わるときに なめらかに動かす演出のことです。
いきなり表示されるより、 ふわっと現れた方が 見ていて分かりやすくなります。
Reactでは、 表示の切り替わりに 動きを加えることで、 使いやすい画面を作れます。
5. CSSだけでできる簡単なアニメーション
まずは難しい道具を使わず、 CSSだけで アニメーションを付けてみます。
function App() {
const items = ["A", "B", "C"];
return (
<ul>
{items.map(item => (
<li key={item} className="fade-item">
{item}
</li>
))}
</ul>
);
}
表示されたときに 少しずつ現れるだけでも、 印象が大きく変わります。
6. 追加と削除にアニメーションを付ける考え方
リストに要素を追加したり、 消したりする場面では、 アニメーションが特に役立ちます。
急に消えるより、 ゆっくり消えた方が 何が起きたか分かりやすいです。
import React, { useState } from "react";
function App() {
const [items, setItems] = useState(["ねこ", "いぬ"]);
return (
<div>
<button onClick={() => setItems([...items, "うさぎ"])}>
追加
</button>
<ul>
{items.map(item => (
<li key={item}>{item}</li>
))}
</ul>
</div>
);
}
export default App;
7. リストとアニメーションで大切なポイント
リストとアニメーションを組み合わせるときは、 keyがとても重要です。
keyが安定していないと、 Reactは どれが追加されたのか 分からなくなります。
その結果、 動きがおかしくなったり、 表示が乱れる原因になります。
8. 初心者が意識すると良い考え方
まずは、 正しくリストを表示できることを 目標にしましょう。
次に、 少しずつ動きを付けると、 自然に理解が深まります。
リストとアニメーションは、 別物ではなく、 同じ流れの中にあります。