vue3新特性


基於 Proxy 的觀察者機制

目前,Vue 的反應系統是使用 Object.defineProperty 的 getter 和 setter。 但是,Vue 3 將使用 ES2015 Proxy 作為其觀察者機制。 這消除了以前存在的警告,使速度加倍,並節省了一半的內存開銷。

為了繼續支持 IE11,Vue 3 將發布一個支持舊觀察者機制和新 Proxy 版本的構建。

重寫虛擬DOM (Virtual DOM Rewrite)

添加flg,Vue2的Virtual DOM不管變動多少整個模板會進行重新的比對,如下圖,會對所有的span進行對比:

vue3通過編譯末班會生成更優化的Virtual DOM,這樣的Virtual DOM會含有一些flag(提示),當后期更新數據時,就會找這些帶有flag的節點,去依次比較這些節點上的新值和舊值,如圖:

即使有很多嵌套的情況,也不會遍歷里邊的span,會直接走到嵌套的div里繼續尋找,如圖:

 可以添加動態的元素屬性,也會相應做標記,如下圖監聽text和props:

 靜態接節提升,這些沒有動態綁定的節點i更新的時候不會被用到,所以說也沒有必要在渲染一遍,它們被放到了渲染函數的外邊,dom更新的時候會被復用,不需要在每次更新的時候,不需要創建整個virtual dom后把舊的銷毀掉,節省了內存,如圖:

 

tree shaking需要用的功能模塊會被打入包里,不用的不會,如圖這里用到了checkbox和v-model,就引入了相關的的代碼和邏輯,不用的話不會被引入:

碎片化節點fragment

之前組建的節點必須有一個根元素,vue3可以有多個根元素,也可以有把文本作為根元素

優化組件實例的創建

重寫服務器渲染

通過模板會生成完全不同的渲染函數

更好的支持TS

 composition api

  • reactive API
  • ref API
  • watch API
  • computed API
  • 生命周期鈎子
  • TypeScript和JSX支持

以上均為增加不是改寫,高度解耦,邏輯復用,隱藏內部成員

https://github.com/vuejs/vite 

 

 原文:https://www.cnblogs.com/enoy/p/vue3.html

https://www.html.cn/archives/10052


免責聲明!

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



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