vue 3.x 相對於 vue 2.x 的重大修改
阿新 • • 發佈:2020-10-09
Data 選項
2.x :data
選項是object
或者是function
3.x :data
選項已標準化為只接受返回object
的function
Mixin 合併行為變更
事件 API
2.x 語法
2.x 中,Vue 例項可用於觸發通過事件觸發 API 強制附加的處理程式 ($on
,$off
和$once
),這用於建立 event hub,以建立在整個應用程式中使用的全域性事件偵聽器
3.x 更新
移除$on
,$off
和$once
方法,$emit
仍然是現有 API 的一部分,因為它用於觸發由父元件以宣告方式附加的事件處理程式
可以通過使用實現事件發射器介面的外部庫來替換現有的 event hub mitt
過濾器(removed)
Filters 已從 Vue 3.0 中刪除,不再受支援(建議用方法呼叫或計算屬性替換它們)
片段
2.x 中,不支援多根元件,當用戶意外建立多根元件時會發出警告,因此,為了修復此錯誤,許多元件被包裝在一個<div>
中;
3.x 中,元件現在可以有多個根節點!但是,這確實要求開發者明確定義屬性應該分佈在哪裡
功能元件
在 Vue 2 中,功能元件有兩個主要用例:-
- 作為效能優化,因為它們的初始化速度比有狀態元件快得多
- 返回多個根節點
全域性 API
2.x 語法
Vue.nextTick()
是一個全域性的 API 直接暴露在單個 Vue 物件上——事實上,例項方法$nextTick()
Vue.nextTick()
為方便起見,回撥的this
上下文自動繫結到當前當前例項
3.x 語法
key
attribute
渲染函式 API
VNode Props 格式化
Slot 統一
this.$slots
現在將 slots 作為函式公開- BREAKING:移除
this.$scopedSlots
過渡的 class 名更改
過渡類名v-enter
修改為v-enter-from
、過渡類名v-leave
修改為v-leave-from
v-model
- prop 和事件預設名稱已更改
-
sync
修飾符和元件的model
v-model
作為代替 - NEW:現在可以在同一個元件上使用多個
v-model
進行雙向繫結 - NEW:現在可以自定義
v-model
修飾符