本專欄思考不周到。
imba 文檔vue
下面列出vue做者的關於虛擬dom的評論:編程
在比較性能的時候,要分清楚初始渲染、小量數據更新、大量數據更新這些不一樣的場合。Virtual DOM、髒檢查 MVVM、數據收集 MVVM 在不一樣場合各有不一樣的表現和不一樣的優化需求。Virtual DOM 爲了提高小量數據更新時的性能,也須要針對性的優化,好比 shouldComponentUpdate 或是 immutable data。
初始渲染:Virtual DOM > 髒檢查 >= 依賴收集dom
小量數據更新:依賴收集 >> Virtual DOM + 優化 > 髒檢查(沒法優化) > Virtual DOM 無優化函數
大量數據更新:髒檢查 + 優化 >= 依賴收集 + 優化 > Virtual DOM(沒法/無需優化)>> MVVM 無優化性能
不要天真地覺得 Virtual DOM 就是快,diff 不是免費的,batching 麼 MVVM 也能作,並且最終 patch 的時候還不是要用原生 API。在我看來 Virtual DOM 真正的價值歷來都不是性能,而是它 1) 爲函數式的 UI 編程方式打開了大門;2) 能夠渲染到 DOM 之外的 backend,好比 ReactNative。優化
做者:尤雨溪 連接:www.zhihu.com/question/31… 來源:知乎 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。文檔
imba之因此那麼快,是在於依賴收集+真實dom操做,每次修改均可以精確的對dom操做,也就是指哪打哪。get