Vue 2.0 與Vue 3.0的 對(duì)比

一、VUE2.0和3.0的優(yōu)缺點(diǎn)

  • 2.0優(yōu)點(diǎn):可以兼容IE9及以上版本

  • 3.0優(yōu)點(diǎn):

  1. composition api相比較屬性方法,有著更強(qiáng)的代碼組織性和復(fù)用性

  2. 監(jiān)聽方式升級(jí),在代碼方面,可以規(guī)避一些未知的數(shù)據(jù)綁定和渲染問題,提升開發(fā)效率

  3. 重構(gòu)了virtual DOM,體積更小,組件渲染決定權(quán)交與組件,使用方式更靈活,性能更好

  4. 底層使用ts,增加數(shù)據(jù)類型強(qiáng)校驗(yàn),可以使用ts功能,增強(qiáng)代碼的可讀性和可維護(hù)性

  5. 新的構(gòu)建工具支持(vite 新一代構(gòu)建工具,速度極快,引領(lǐng)趨勢(shì))

  6. 打包體積更小、初始渲染速度、開發(fā)熱更新速度、內(nèi)存占用、性能優(yōu)化等

詳見官方說明: https://v3.cn.vuejs.org/guide/migration/introduction.html#%E5%80%BC%E5%BE%97%E6%B3%A8%E6%84%8F%E7%9A%84%E6%96%B0%E7%89%B9%E6%80%A7

二、組件化是否必須用3.0?

  1. 不一定,如果不考慮IE兼容性問題,推薦使用3.0

  2. Vue 3.0 與新一代前端構(gòu)建工具 Vite 綁定,相比2.0的構(gòu)建工具,大型工程,啟動(dòng)、熱更新、構(gòu)建均提效明顯,Vite官方默認(rèn)只支持 Vue 3.0,Vue2.0使用時(shí)需要引入非官方插件 vite-plugin-vue2,但是沒有覆蓋到所有的場(chǎng)景(有坑)

vue3.0與vue2.0 對(duì)應(yīng)的官方默認(rèn)構(gòu)建工具 Vite 與 @vue/cli 對(duì)比

a、示例 Hello world 工程 -- 運(yùn)行機(jī)器 MacBook Pro (16-inch, 2019)

工具 冷啟動(dòng) 熱更新 構(gòu)建
Vite 194ms 29ms 4.87s
@vue/cli 2399ms 191ms 9.00s

注:由于 vite 將原生編譯交給瀏覽器,此處熱更新統(tǒng)計(jì)的為變化文件傳輸時(shí)間,@vue/cli 的熱更新統(tǒng)計(jì)的為變化文件編譯及依賴樹更新的時(shí)間

b、示例 中等復(fù)雜工程對(duì)比,來自開源項(xiàng)目,35個(gè)頁面

工具 冷啟動(dòng) 熱更新 構(gòu)建
Vite 15122ms 101ms 47.39s
@vue/cli 58328ms 788ms 60.02s

三、其它測(cè)評(píng)

參考文檔;https://segmentfault.com/a/1190000041263260

3、2.0升級(jí)到3.0的成本

1)2.0到3.0的升級(jí),如果完全使用vue3.0的語法,90%以上的代碼需要重構(gòu);

2)vue相關(guān)框架也存在一些非兼容的變更,例如Vue Router、vuex

3)如果不考慮語法遷移,重點(diǎn)要考慮一些依賴組件庫的破壞性,需要升級(jí)支持vue3.0的組件,并且做相應(yīng)的組件庫使用調(diào)整

  1. 采用Vue服務(wù)端渲染 Nuxt 的項(xiàng)目,暫時(shí)處于 beta 版本

5)3.0版本不是很穩(wěn)定,最近十幾天也處于頻繁更新的狀態(tài),而2.0已經(jīng)超過1年沒有發(fā)布新版本了

6)衍生框架如微前端等默認(rèn)支持2.0,對(duì)3.0的支持力度不高

詳見官方說明:https://v3.cn.vuejs.org/guide/migration/migration-build.html#overview

四、結(jié)論概括

功能實(shí)現(xiàn)方面,2.0與3.0是相互可替代,不存在3.0實(shí)現(xiàn)的功能2.0無法實(shí)現(xiàn)的場(chǎng)景;

3.0的性能及新開發(fā)范式支持相對(duì)2.0有較大提升,開發(fā)效率及程序性能均會(huì)提升

3.0不支持IE11,3.0的能力生態(tài)補(bǔ)齊中,目前較2.0存在差距

3.0取代2.0的預(yù)計(jì),由于2.0項(xiàng)目非常多,預(yù)計(jì)兩版本的使用會(huì)較長時(shí)間并存

3.0與2.0項(xiàng)目無法兼容,2.0升級(jí)到3.0成本比較大,除工程本身升級(jí)外,還依賴三方庫提供3.0版本

五、建議

如支持IE11非必須,新項(xiàng)目采用 vue3.0 技術(shù)棧,打造 vue 3.0 組件庫;

目前已有2.0工程升級(jí)到3.0成本高、有風(fēng)險(xiǎn),不建議升級(jí)

如需支持IE11,采用Vue 2.0

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容