1. 程式人生 > 實用技巧 >vue 3.x 相對於 vue 2.x 的重大修改

vue 3.x 相對於 vue 2.x 的重大修改

Data 選項

2.x :data選項是object或者是function

3.x :data選項已標準化為只接受返回objectfunction

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 語法

keyattribute

渲染函式 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修飾符

  

v-if 與 v-for 的優先順序對比

v-bind 合併策略