詳解 Vue 2.4.0 帶來的 4 個重大變化
前言
今日早讀文章由美團點評金融前端團隊 Vue 生態重度用戶 @ 張婧雅 翻譯投稿分享。
正文從這開始~
實踐解決方案是簡單的,但思考的過程才是值得我們探索的。
本周Vue.js發布了有著豐富新特性和更加優化的2.4.0版本。
在這篇文章中,我將跟大家分享4個有突破性新特性。
服務端渲染非同步組件
包裹組件內實現屬性繼承
非同步組件支持webpack3
組件渲染後可保留HTML 注釋
1、服務端渲染非同步組件
非同步組件
非同步組件是非常方便的,簡而言之,它能讓你的應用代碼分離,使非必要組件(比如模態,選項卡,摺疊內容,其他頁面等)在首頁載入後延遲載入, 從而讓用戶更快的看到主頁。
假如你決定以非同步方式載入內容,主組件可能如下所示:
importSyncComponentfrom ./SyncComponent.vue ;
constAsyncComponent=import( ./AsyncComponent.vue );
exportdefault{
components:{
SyncComponent,
AsyncComponent
}
}
通過使用webpack的動態import 函數,可使非同步組件將在服務端頁面後,通過ajax請求被載入。不足就是,當載入中用戶可能只能看到微調框或者是空白區域。
這可以通過服務端渲染來改進,被標記的非同步組件可以在初始頁面內渲染,避免出現微調框或者空白區域,提高用戶體驗。
VUE2.4.0增加server-rendered屬性使其變得可能。SSR中主組件輸出如下。
Whatever sync-component rendersas...
2、組件內新增實現屬性繼承
VUE中一個比較令人煩惱的事情是屬性只能從父組件傳遞給子組件。這也就意味著當你想向嵌套層級比較深組件數據傳遞,只能由父組件傳遞給子組件,子組件再傳遞給孫子組件...像下面這樣
Finally,here s where we use{{passdown}}!
demo中只有一兩個屬性還好,試想一下,當在一個真實的項目中,你可能有非常非常多的屬性需要傳遞時,那是怎樣一種恐怖的場景。
例子
我們首先綁定兩個屬性在組件上,propa是組件自己需要使用的,而propb只是組件需要向下傳遞的一個屬性
{{propa}}
exportdefault{
props:[ propa ]
}
它將渲染成下面的樣子
propa
propb僅僅被渲染普通html屬性,如果想讓屬性能夠向下傳遞,即使prop組件沒有被使用,你也需要在組件上註冊。
exportdefault{
props:[
propa ,
propb // 註冊後才能向下傳遞
]
}
propa
向下傳遞prop
{{propa}}
exportdefault{
props:[ propa ],
inheritAttrs:false
}
想像當你需要向多個嵌套層級中,傳遞上千百個屬性時,這個特性使你的在每個中間組件屬性定義變得相當簡潔。
當然,也可以通過這種方式用v-on綁定事件監聽傳遞函數
3、非同步組件支持webpack3
作用域提升是最近發布的webpack3的關鍵功能之一。webpack 1和2是將模塊打包到一個獨立的函數作用域內。通過新的ES2015模塊語法實現的範圍提升方法在瀏覽器中的執行速度,比老的獨立範圍的方式要快的多。
由於ES模塊導出方式不同,在Vue項目中用於代碼拆分的簡潔的非同步組件語法
例如
constFoo=()=>import( ./Foo.vue );
// 將改為:
constFoo=()=>import( ./Foo.vue ).then(m=>m.default);
4、保留HTML注釋
Hello
渲染後:
Hello
問題是,有些注釋需要被渲染在頁面中,有些庫可能需要這些注釋。
Hello
exportdefault{
comments:true
}
最後
關於本文
譯者:@ 張婧雅(公號:meituanfsp)
作者:@ANTHONY GORE
點擊展開全文
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※開幕在即!8月12日iWeb峰會北京站全部議程滾燙出爐!
※深入PostCSS Web設計
※高效壓縮CSS文件束的體積
※【第1006期】ECMAScript 6 新特性
※從移動端click到搖一搖
TAG:前端早讀課 |
※vivo S1 Pro詳解:2500-3000元檔的大殺器
※iOS 11.3 beta 3 更新詳解 16個新功能與改變匯總
※iOS12.1.3更新了什麼?一文詳解iOS12.1.3新特性與升降級全攻略
※經典遠攝變焦鏡頭:AF-P 尼克爾 70-300mm f/4.5-5.6E ED VR性能詳解
※Gartner:2018年10大安全項目詳解
※CVE-2018-2628 Weblogic反序列化POC重構詳解
※12星座周運勢詳解3.12-3.18
※奔富全系列詳解:Bin389、407和707有什麼區別?
※一周沖忌與12生肖運勢詳解3.5-3.11
※12星座周運勢詳解(2.26-3.4)
※小米9、華為Mate 20 Pro性能對比,驍龍855詳解(下篇)
※PS CC2018學習連載21——9大圖層樣式功能詳解!
※9月生肖運勢詳解(9.1-9.30)
※非常運勢網每周生肖運勢詳解(2018.4.30-5.6)
※299元 PMW3389 雷柏VT900電競遊戲滑鼠詳解
※2018年國防預算擬安排11069.51億增長8.1% 專家詳解用途
※15分鐘充滿50% iQOO 44瓦快充技術詳解
※12星座下周運勢詳解11.19-11.25號,水瓶小心謹慎!
※十二星座周運勢詳解(1.29-2.04)
※2018年7月第1周12星座運勢詳解(7.02-7.08)