1、 虛擬DOM中key的作用
Key是虛擬DOM對象的標(biāo)識,當(dāng)數(shù)據(jù)發(fā)生變化時,Vue會根據(jù)新數(shù)據(jù)生成新的虛擬DOM,隨后VUe進(jìn)行新虛擬DOM 與 舊虛擬DOM的差異對比,比較規(guī)則如下:
2、對比規(guī)則:
(1)、舊虛擬Dom中找到了與新虛擬DOM相同的key:
????????????? ①若虛擬DOM中內(nèi)容沒變,直接使用之前的真實(shí)DOM
? ? ? ? ? ? ? ?②若虛擬DOM中內(nèi)容變了,則生成新的真實(shí)DOM,隨后替換掉頁面中之前的真實(shí)DOM。
⑵、舊虛擬DOM中未找到與新虛擬DOM相同的key, 創(chuàng)建新的真實(shí)DOM,隨后渲染到頁面
3、 用index作為key可能會引發(fā)的問題
1、 若對數(shù)據(jù)進(jìn)行:逆序添加、逆序刪除等破壞順序操作;
會產(chǎn)生沒必要的真實(shí)DOM更新è頁面效果沒問題,但效率低
2、 如果結(jié)構(gòu)中還包含輸入類的DOM:
會產(chǎn)生錯誤DOM更新è頁面有問題
4、 開發(fā)中如何選擇key
最好使用每條數(shù)據(jù)的唯一標(biāo)識作為key,比如id,手機(jī)號,身份證號,學(xué)號等唯一值。
如果不存在對數(shù)據(jù)的逆序添加,逆序刪除等破壞順序操作,僅用于渲染列表用于展示,使用index作為key是沒問題的。
5、Key的作用和原理
