Vue 3 保留了絕大部分 Vue 2 的功能,但也引入了一些重要的更改镰禾。盡管 Vue 3 是向后兼容的皿曲,但某些功能可能需要調(diào)整才能正常工作。下面是一些主要的區(qū)別:
Vue 3 引入了 Composition API吴侦,它提供了一種更靈活且邏輯復用的方法屋休。然而,Vue 3 仍然支持 Vue 2 中的 Options API备韧,因此您可以繼續(xù)使用data劫樟、methods、computed和生命周期鉤子。
Vue 3 中的ref和reactive函數(shù)已經(jīng)替代了 Vue 2 中的Vue.observable叠艳。
Vue 3 改進了虛擬 DOM奶陈,并重新設計了內(nèi)部架構(gòu)。雖然這對于大多數(shù)應用程序來說不會有很大影響附较,但它使 Vue 3 的性能得到了顯著提高吃粒。
Vue 3 中的自定義指令 API 發(fā)生了變化。現(xiàn)在翅睛,自定義指令需要一個具有beforeMount声搁、mounted、beforeUpdate捕发、updated和beforeUnmount生命周期鉤子的對象疏旨,而不是在 Vue 2 中使用的bind和update函數(shù)。具體的變化可以查閱官方文檔的Custom Directives部分扎酷。
Vue 3 的全局 API 發(fā)生了變化檐涝。例如,Vue.filter法挨、Vue.mixin谁榜、Vue.set和Vue.delete在 Vue 3 中被移除。而替代方案是使用app實例的方法凡纳,如app.mixin窃植。有關更多詳細信息,請查閱Global API Treeshaking荐糜。
Vue 3 中的組件生命周期鉤子有所改動巷怜。例如,Vue 2 中的beforeDestroy和destroyed鉤子在 Vue 3 中分別更名為beforeUnmount和unmounted暴氏。Vue 3 還引入了新的生命周期鉤子延塑,如beforeUpdate和updated。
Vue 3 中的事件處理有所不同答渔。.native修飾符已被移除关带,可以使用v-on的變體v-on:click.native。另外沼撕,.once修飾符不再保證在多個偵聽器之間按順序觸發(fā)宋雏。
Vue 3 中的插槽語法發(fā)生了變化,slot和slot-scope屬性已被廢棄端朵,取而代之的是v-slot指令好芭。