Vue3更新重點

2021-10-18 21:14:08 字數 883 閱讀 3139

vue 2.x使用object.defineproperty,參考文件

vue 3使用proxy,物件**,參考文件

object.defineproperty的缺陷:

1)效能:通過遍歷物件的屬性進行監聽,但是屬性值也是物件就需要深度遍歷。

2)無法監聽陣列:陣列的主要操作場景是遍歷,如果每乙個元素都掛載set和get方法,會產生巨大效能消耗

3)對屬性的新增、刪除動作的檢測;

4)對陣列基於下標的修改、對於 .length修改的檢測

所以之前陣列的物件屬性修改,需要手動set來通知頁面修改了資料。如下截圖

proxy的優勢:

1)可以直接監聽物件而非屬性,並返回乙個新物件。

2)可以直接監聽陣列的變化

3)攔截方式多種多樣,速度加倍,節省記憶體開銷

tree-shaking是用來在打包編譯成 bundle 時消除 es6 module 語法中未使用到的**和模組。參考文件

vue 2.x 的全域性 api 比如 nexttick 無法被 treeshake,所以就算你沒有用到這些 api,它們還是會被打包到你的生產版本的**包裡

vue 3中,官方團隊重構了所有全域性 api 的組織方式,讓所有的 api 都支援了 treeshaking

這樣打包後的體積會更小

vue3原始碼使用ts編寫

typescript官方文件www.tslang.cn/

實際例子,基於vue3開發的小demo,三角生成器

快速了解vue(3)

上次我們說到了.vue檔案,那麼這是個什麼檔案呢?啥也不是,就是個vue元件。我們都說要元件化,模組化什麼的,這.vue檔案就是個元件,開啟看看就知道了,它這裡有兩個,主要的標籤,乙個是,乙個是。這些我們肯定看得懂,標籤裡是寫html的,頁面就是由這許許多多的元件拼出來的,就像拼圖似的,想要修改頁面...

vue3學習筆記

vue3 1.context.emit update xx props.xx 可 v model xx更新xx的值 個人記憶,雙向繫結 需要雙向改變的值 代替 vue2 sync 2.元件上繫結的事件預設是繫結第一層,可使用inheritattrs false 取消預設,在需要繼承的屬性的標籤使用v...

vue3學習總結

v model 2.x語法 title.sync oldvalue childcomponent this emit update title newvalue 3.x語法v model title oldvalue childcomponent 所有v model不到引數,一定要改變道具和事件名稱...