在子元件 Keys 是很重要的
你可以從陣列動態建立 key 屬性並傳送到所有的元件(component)。它是一個唯一以及固定的 id,React 用來識別 DOM 裡面的每個元件,並區別它是否為同一個元件。使用 keys 可以確保子元件被保護而不會被重覆建立,也可以防止奇怪的事件發生。
Key 跟效能不太相關,它跟元件識別較有關係(反之,它間接提升了效能)。隨機賦值和改變數值將無法識別。Paul O’Shannessy
- 使用物件內存在的唯一值。
- 在你的父元件定義 keys,而不是子元件。
//bad
...
render() {
<div key={{item.key}}>{{item.name}}</div>
}
...
//good
<MyComponent key={{item.key}}/>
- 使用陣列索引是不好的習慣。
random()
將無法使用。
//bad
<MyComponent key={{Math.random()}}/>
- 你可以建立你自己唯一的 id。確認這個方法夠快速可以附加到你的物件上。
- 當你的子元件數量很多或者含有龐大的元件,使用 keys 可以提高效能。
- 你必須提供 key 屬性給 ReactCSSTransitionGroup 的所有子元件。
MEET THE NEW JSTIPS BOOK
You no longer need 10+ years of experience to get your dream job.
Use the 100 answers in this short book to boost your confidence and skills to ace the interviews at your favorite companies like Twitter, Google and Netflix.
GET THE BOOK NOW
MEET THE NEW JSTIPS BOOK
The book to ace the JavaScript Interview.
A short book with 100 answers designed to boost your knowledge and help you ace the technical interview within a few days.
GET THE BOOK NOW