面試題:react、 vue中的key有什么作用? (key的內(nèi)部原理)
1.虛擬DOM中key的作用:
key是虛擬DOM對象的標識,當狀態(tài)中的數(shù)據(jù)發(fā)生變化時,Vue會根據(jù)【新數(shù)據(jù)】生成【新的虛擬DON】,隨后Vue進行【新虛擬DOM】與【舊虛擬DOM】的差異比較,比較規(guī)則如下:
2.對比規(guī)則:
(1).舊虛擬DOM
中找到了與新虛擬DOM
相同的key:
- .若虛擬DOM中內(nèi)容沒變,直接使用之前的真實DOM !
- .若虛擬DON中內(nèi)容變了,則生成新的真實DOM,隨后替換掉頁面中之前的真實DOM.
(2).舊虛擬DOM中未找到與新虛擬DOM相同的key
- 創(chuàng)建新的真實DOM,隨后渲染到到頁面。
3.用index作為key可能會引發(fā)的問題:
1.若對數(shù)據(jù)進行:逆序添加、逆序刪除等破壞順序操作:會產(chǎn)生沒有必要的真實DOM更新==>界面效果沒問題,但效率低。
2.如果結(jié)構(gòu)中還包含輸入類的DOM:會產(chǎn)生錯誤DOM更新==>界面有問題。文章來源:http://www.zghlxwxcb.cn/news/detail-444021.html
4.開發(fā)中如何選擇key? :
1.最好使用每條數(shù)據(jù)的唯一標識作為key,比如id、手機號、身份證號、學(xué)號等唯一值。
2.如果不存在對數(shù)據(jù)的逆序添加、逆序刪除等破壞順序操作
,僅用于渲染列表用于展示,使用index作為key是沒有問題的。文章來源地址http://www.zghlxwxcb.cn/news/detail-444021.html
到了這里,關(guān)于面試題:react、 vue中的key有什么作用? (key的內(nèi)部原理)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!