key是什么
key是react用來(lái)追蹤哪些列表的元素被修改隔嫡,被添加或者是被刪除的輔助標(biāo)示甸怕。在開(kāi)發(fā)過(guò)程中我們需要保證某個(gè)元素的key在其同級(jí)元素中具有唯一性甘穿。
作用
在react的diff算法中react會(huì)借助元素的key來(lái)判斷該元素是最新創(chuàng)建的還是被移動(dòng)而來(lái)的,從而減少不必要的元素渲染梢杭。除此之外温兼,react還要根據(jù)key來(lái)判斷元素與本地狀態(tài)的關(guān)聯(lián)關(guān)系
用處點(diǎn)
- Key和當(dāng)前的Type一起標(biāo)記當(dāng)前同級(jí)元素的唯一性
- 鏈表圖不方便取值,不方便增刪改查武契,因?yàn)镵ey值具有唯一性募判,就能獲取當(dāng)前fiber參數(shù)的值
注意點(diǎn)
- key的值一定要和具體的元素一一對(duì)應(yīng)
- 盡量不要用數(shù)組中的index來(lái)作為key的值
- 永遠(yuǎn)不要視圖在render的時(shí)候用隨機(jī)數(shù)或者是其他的操作來(lái)給key加上不穩(wěn)定的key,這樣造成的性能開(kāi)銷(xiāo)比不加key的情況更糟糕