react diff 極簡版

  爲何react這麼快呢 react

  由於react用了虛擬DOM;算法

 

  可是每次虛擬DOM轉真實DOM不也是很浪費性能嗎 性能優化

  nice,因此關鍵點在Diff算法這裏,去對比新舊DOM樹,然後經過補丁去更新到真實DOM上性能

 

  這個比對不是也很浪費時間嗎 優化

  正常狀況下,比較兩個樹形結構差別的算法的時間複雜度是O(N^3),這個效率顯然是沒法接受的。spa

  react經過總結DOM的實際使用場景提出了兩個在絕大多數實踐場景下都成立的假設,基於這兩個假設,React實現了在O(N)時間複雜度內完成兩棵虛擬DOM樹的比較。效率

  兩個假設是:渲染

    (1)若是兩個元素的類型不一樣,那麼它們將生成兩棵不一樣的樹;im

    (2)爲列表中的元素設置key屬性,用key標識對應的元素在屢次;總結

 

  面對性能優化咱們能作什麼呢

    一、使用生產環境版本的庫;

     二、避免沒必要要的組件渲染;

     三、使用key;  

 

 

  

  

相關文章
相關標籤/搜索