Vue 2.5 發(fā)布了:新功能特性一覽!
我們很高興宣布 Vue 2.5 Level E 的發(fā)布!本次發(fā)布包括多個(gè)功能提升并且我們推薦你查看發(fā)布說(shuō)明來(lái)獲取完整詳細(xì)信息。 在這篇文章中,我們將重點(diǎn)介紹一些更重要的的變化:更好的 TypeScript 集成,更好的錯(cuò)誤處理,更好地支持單文件組件中的函數(shù)式組件以及與環(huán)境無(wú)關(guān)的服務(wù)端渲染。
更好的 TypeScript 集成
得益于 TypeScript 團(tuán)隊(duì)的幫助,2.5 提供了大大改進(jìn)的類型聲明,可以與 Vue 的開(kāi)箱即用的 API 一起使用,而不需要組件類裝飾器。 新的類型聲明還可以讓 Vetur 等編輯器擴(kuò)展功能更強(qiáng)大,為純 JavaScript 用戶提供更好的Intellisense 支持。 更多詳細(xì)信息,請(qǐng)查看我們之前關(guān)于更改的信息(翻譯版本)。
感謝來(lái)自 TypeScript 團(tuán)隊(duì)的 Daniel Rosenwasser 發(fā)起的PR,以及核心團(tuán)隊(duì)成員 Herrington Darkholme和 Katashin 的改進(jìn)和審查。
注意:TypeScript 用戶還應(yīng)將以下包更新為***版本從而兼容類型聲明:vue-router,vuex,vuex-router-sync 和vue-class-component。
更好地錯(cuò)誤處理
在2.4及更早版本中,我們通常使用全局 config.errorHandleroption 來(lái)處理應(yīng)用程序中的意外錯(cuò)誤。 我們還有renderError 組件選項(xiàng)來(lái)處理渲染函數(shù)中的錯(cuò)誤。 但是,我們?nèi)鄙偬幚響?yīng)用程序特定部分內(nèi)的泛型錯(cuò)誤的機(jī)制。
在2.5中,我們引入了新的 errorCaptured 鉤子。 具有此鉤子的組件捕獲其子組件樹(shù)(不包括其自身)中的所有錯(cuò)誤(不包括在異步回調(diào)中調(diào)用的那些)。 如果你熟悉React,這與 React 16 中引入的錯(cuò)誤邊界的概念相似。鉤子接收與全局 errorHandler 相同的參數(shù),你可以利用這個(gè)鉤子來(lái)優(yōu)雅地處理和顯示錯(cuò)誤。
更好地支持 SFC 中的函數(shù)式組件
使用 vue-loader> = 13.3.0 和 Vue 2.5,在 * .vue 文件中定義為單個(gè)文件組件的函數(shù)式組件現(xiàn)在可以得到正確的模板編譯,Scoped CSS和熱重新加載支持。 這使得將葉子組件轉(zhuǎn)換為函數(shù)式的更為容易,從而進(jìn)行性能優(yōu)化。
*感謝核心團(tuán)隊(duì)成員Blake Newman 對(duì)于這些功能做出的貢獻(xiàn)。
與環(huán)境無(wú)關(guān)的服務(wù)端渲染
vue-server-renderer 的默認(rèn)構(gòu)建假定一個(gè) Node.js 環(huán)境,這使得它在有的 JavaScript 運(yùn)行時(shí)(如 php-v8js 或Nashorn)中不可用。 在 2.5 中,我們已經(jīng)發(fā)布了一個(gè)與環(huán)境無(wú)關(guān)的 vue-server-renderer 版本,可以在瀏覽器或純 JavaScript 引擎中使用。 這可以打開(kāi)有趣的策略,例如直接在 PHP 進(jìn)程中使用 Vue 服務(wù)端渲染。
同樣,我們建議你查看完整的發(fā)布說(shuō)明從而了解其他 API 的改進(jìn),包括 v-on,v-model,scoped slot,provide/inject 等。 你可能也對(duì)我們的公共藍(lán)圖感興趣,詳細(xì)說(shuō)明了團(tuán)隊(duì)的工作。 干杯!