1.key是虛擬dom對象的標(biāo)識,在更新顯示時(shí)起到重要的作用
2.當(dāng)狀態(tài)中的數(shù)據(jù)發(fā)生變化的時(shí)候因俐,react會根據(jù)【新數(shù)據(jù)】生成【新的虛擬DOM】猴贰,隨后React進(jìn)行【新虛擬DOM】與【舊虛擬DOM】的diff比較揭绑,比較規(guī)則見3
3.當(dāng)舊虛擬DOM找到了與新虛擬DOM相同的Key:發(fā)現(xiàn)虛擬DOM中是否發(fā)生改變腥例,如果發(fā)生改變那生成新的真實(shí)DOM,隨后替換舊的真實(shí)DOM子姜,如果發(fā)現(xiàn)沒有改變那就直接使用之前的真實(shí)DOM
舊虛擬DOM未找到與新虛擬DOM相同的key祟绊,根據(jù)數(shù)據(jù)創(chuàng)建新的真實(shí)DOM,隨后渲染到頁面當(dāng)中
4.用index作為key可能會存在當(dāng)數(shù)據(jù)量過大的時(shí)候重新去新舊DOM作比較的時(shí)候會多次重新生成真實(shí)DOM哥捕,造成不必要的DOM刷新問題牧抽,而且隨著數(shù)據(jù)發(fā)生變化數(shù)據(jù)的索引值會發(fā)生變化讓對應(yīng)的DOM元素更新界面產(chǎn)生問題
5.對于key可以用每條數(shù)據(jù)的唯一標(biāo)識,一般常用id作為唯一標(biāo)識