Virtudom DOM 和 key

概覽

文章內(nèi)容選自極客時間 ebay 技術(shù)專家王沛的《 React 實戰(zhàn)進階》第 5 講,本文的主題是 理解 Virtual DOMkey 屬性的作用。

小結(jié)

1 算法復雜度為 O(n)
2 虛擬 DOM 如何計算 diff;
2 key 屬性的作用。

內(nèi)容

1 Virtual DOM 與 React 組件的聯(lián)系:

JSX 的運行基礎(chǔ)

2 diff 時機

調(diào)用 render() 產(chǎn)生新的 Virtual DOM

3 diff 的原理

策略:廣度優(yōu)先分層比較 ,從 根節(jié)點 開始,
diff 處理:不同的變化,不同的處理

(1)屬性變化及順序
如圖:

image.png

處理:借助標識(key),交換順序

(2)節(jié)點類型

如圖:


image.png

處理:直接刪除原有節(jié)點,創(chuàng)建新節(jié)點,不管舊節(jié)點是否還會用到

(3)節(jié)點跨層移動

如圖:


image.png

處理:在 old 層刪除原有節(jié)點,在 new 層創(chuàng)建新節(jié)點
總結(jié):刪除節(jié)點時,不考慮節(jié)點后續(xù)是否會用到,存在一定的性能問題
原因:UI發(fā)生變化時,很少發(fā)生節(jié)點的跨層移動,一般來說歸結(jié)為:屬性變化、順序變化、類型變化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 等綠綺和玄清從房中出來時,已經(jīng)換上了一身商人的服裝,兩人并沒有從前沒走出去,而是在下人們走的小門出去的U5然后兩人...
    東兔角閱讀 323評論 0 1
  • 不知道你有沒有這樣的感受?明明已經(jīng)沒有了高中那繁重的課業(yè),但生活卻比高中累的很多。每天疲于奔命,不知為何而忙。日子...
    蠟筆丟了小新閱讀 373評論 2 5
  • 不一樣的人生,總有別樣風采 漫漫人生路 我們告別了17歲的雨季 轉(zhuǎn)身奔上20出頭的年紀 20年 你給這爛漫如煙花的...
    雨沫文心閱讀 387評論 0 1
  • 巧者勞而智者憂,無能者無所求,飽食而遨游,泛若不系之舟。
    云居雁閱讀 207評論 0 1

友情鏈接更多精彩內(nèi)容