0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Reactでkey属性が必要な理由

Posted at

はじめに

Reactでループ処理を使って、listを羅列する時に、

<li key=""></li>

みたいな形でkey属性を付与することが推奨されているかと思います。

理由として一応↓のように説明をされていて、今まで何となくで理解をしてましたが、
仮想DOMの情報整理をしている時にどういうことかが理解できてハッとしたので備忘録として書いておきます。

Key は、どの要素が変更、追加もしくは削除されたのかを React が識別するのに役立ちます。配列内の項目に安定した識別性を与えるため、それぞれの項目に key を与えるべきです。

参照:リストとkey

結論

仮想DOMで変更前と変更後を比較する際に、差分を識別しやすくし、
パフォーマンスを改善することがkey属性を付与する意味だと理解。

そもそも、Reactは仮想DOMという仕組みを使って、表示の変更を行う。
具体的には、変更前と変更後の仮想DOMを比較して差分を検出し、その差分のみをリアルDOMへ反映するという流れ。

差分を検知するには、変更前と変更後で「どこが同じでどこが違うのか」を判別する必要があり、key属性を付与してあげることで同一部分の識別がスムーズになる。

まとめ

今後は意味を理解した上で、keyを付与できそうです。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?