虛擬 DOM 的優缺點?


什么是虛擬dom
用js模擬一顆dom樹,放在瀏覽器內存中.當你要變更時,虛擬dom使用diff算法進行新舊虛擬dom的比較,將變更放到變更隊列中,

反應到實際的dom樹,減少了dom操作.

虛擬DOM將DOM樹轉換成一個JS對象樹,diff算法逐層比較,刪除,添加操作,但是,如果有多個相同的元素,可能會浪費性能,所以,react和vue-for引入key值進行區分.

 

優點:

  • 保證性能下限: 框架的虛擬 DOM 需要適配任何上層 API 可能產生的操作,它的一些 DOM 操作的實現必須是普適的,所以它的性能並不是最優的;但是比起粗暴的 DOM 操作性能要好很多,因此框架的虛擬 DOM 至少可以保證在你不需要手動優化的情況下,依然可以提供還不錯的性能,即保證性能的下限;
  • 無需手動操作 DOM: 我們不再需要手動去操作 DOM,只需要寫好 View-Model 的代碼邏輯,框架會根據虛擬 DOM 和 數據雙向綁定,幫我們以可預期的方式更新視圖,極大提高我們的開發效率;
  • 跨平台: 虛擬 DOM 本質上是 JavaScript 對象,而 DOM 與平台強相關,相比之下虛擬 DOM 可以進行更方便地跨平台操作,例如服務器渲染、weex 開發等等。

缺點:

  • 無法進行極致優化: 雖然虛擬 DOM + 合理的優化,足以應對絕大部分應用的性能需求,但在一些性能要求極高的應用中虛擬 DOM 無法進行針對性的極致優化。
    首次渲染大量DOM時,由於多了一層虛擬DOM的計算,會比innerHTML插入慢。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM