一、VUE2.0和3.0的優(yōu)缺點(diǎn)
2.0優(yōu)點(diǎn):可以兼容IE9及以上版本
3.0優(yōu)點(diǎn):
composition api相比較屬性方法,有著更強(qiáng)的代碼組織性和復(fù)用性
監(jiān)聽方式升級(jí),在代碼方面,可以規(guī)避一些未知的數(shù)據(jù)綁定和渲染問題,提升開發(fā)效率
重構(gòu)了virtual DOM,體積更小,組件渲染決定權(quán)交與組件,使用方式更靈活,性能更好
底層使用ts,增加數(shù)據(jù)類型強(qiáng)校驗(yàn),可以使用ts功能,增強(qiáng)代碼的可讀性和可維護(hù)性
新的構(gòu)建工具支持(vite 新一代構(gòu)建工具,速度極快,引領(lǐng)趨勢(shì))
打包體積更小、初始渲染速度、開發(fā)熱更新速度、內(nèi)存占用、性能優(yōu)化等
二、組件化是否必須用3.0?
不一定,如果不考慮IE兼容性問題,推薦使用3.0
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)整
- 采用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