Vue是一套基于MVVM模式的用于構建用戶界面的JavaScript框架,是以數據驅動和組件化的思想構建的。尤雨溪在2013年12月7日發布Vue.js的0.6.0版本,2015年10月26日發布1.0.0版本,2016年10月1日發布了2.0.0版本,2020年9月18日發布了3.0版本。
Vue.js 3.0沒有延用Vue.js 2.x版本代碼,而是采用TypeScript重新編寫,新版的API全部采用普通函數。
Vue.j 3.0新特性:
1. 更好的性能
Vue3.0重寫了虛擬DOM的實現,并對模板的編譯進行了優化,改進了組件初始化的速度,和Vue2.x相比,更新速度和內存占用方面性能提升不少。
2. Tree-Shaking支持
對無用的代碼模塊進行“剪枝”處理,僅打包需要的,而Vue2.x會把不用的功能代碼也打包。
3. 組合API(Composition API)
Vue2.x使用mixin來復用功能,但mixin存在的問題是使用過多,很難知道哪個功能是從mixin引入的,另外mixin的類型推斷比較差。Vue3.0新增的Composition API可以完美地替代mixin,讓用戶更靈活的復用代碼,并且Compoxition API可以很好的進行類型推斷,解決了多組件之間邏輯重用的問題。
4. 碎片(Flagmen)
Vue2.x的組件需要有一個唯一的根節點,而Vue3.0組件模板不再需要單個根節點,可以有多節點。
5. 傳送(Teleport)
有時組件模板的一部分在邏輯上屬于該組件,但從技術角度看最好將這模板的代碼移動到VUE程序之外的其他位置,使用Teleport內置組件可以很容易實現。
6. 懸念(Suspense)
Suspense內置組件可以在嵌套層級中等待嵌套的異步依賴項,支持async setup(),支持異步組件。
7. 更好的TypeScript支持
Vue3.0代碼采用TypeScript編寫,具有更好的類型支持。開發人員可以采用TypeScript開發Vue應用,而無需擔心兼容性問題,結合支持Vue3.0的TypeScript插件,開發更高效,并且擁有類型檢查、自動補全等功能。
8. 自定義渲染器API
使用自定義渲染器API,用戶可以嘗試與第三方庫集成,如編寫WebGL自定義渲染器。