亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Vue項(xiàng)目骨架屏注入實(shí)踐

 更新時間:2019年08月05日 09:24:24   作者:SHERlocked93  
這篇文章主要介紹了淺談Vue項(xiàng)目骨架屏注入實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

相比于早些年前后端代碼緊密耦合、后端工程師還得寫前端代碼的時代,如今已發(fā)展到前后端分離,這種開發(fā)方式大大提升了前后端項(xiàng)目的可維護(hù)性與開發(fā)效率,讓前后端工程師關(guān)注于自己的主業(yè)。然而在帶來便利的同時,也帶來了一些弊端,比如首屏渲染時間(FCP)因?yàn)槭灼列枰埱蟾鄡?nèi)容,比原來多了更多HTTP的往返時間(RTT),這造成了白屏,如果白屏?xí)r間過長,用戶體驗(yàn)會大打折扣,如果用戶網(wǎng)速差,則FCP會更長。

由此引申出一系列的優(yōu)化方法,骨架屏也因此被提出。

1. FCP優(yōu)化

在 Google 提出的以用戶為中心的四個頁面性能衡量指標(biāo)中,F(xiàn)P/FCP可能是開發(fā)者們最熟悉的了:

為了優(yōu)化首屏渲染時間這個指標(biāo),減少白屏?xí)r間,前端仔們想了很多辦法:

加速或減少HTTP請求損耗 :使用CDN加載公用庫,使用強(qiáng)緩存和協(xié)商緩存,使用域名收斂,小圖片使用Base64代替,使用Get請求代替Post請求,設(shè)置 Access-Control-Max-Age 減少預(yù)檢請求,頁面內(nèi)跳轉(zhuǎn)其他域名或請求其他域名的資源時使用瀏覽器prefetch預(yù)解析等;

延遲加載 :非重要的庫、非首屏圖片延遲加載,SPA的組件懶加載等;

減少請求內(nèi)容的體積 :開啟服務(wù)器Gzip壓縮,JS、CSS文件壓縮合并,減少cookies大小,SSR直接輸出渲染后的HTML等;

瀏覽器渲染原理 :優(yōu)化關(guān)鍵渲染路徑,盡可能減少阻塞渲染的JS、CSS;

 優(yōu)化用戶等待體驗(yàn) :白屏使用加載進(jìn)度條、菊花圖、骨架屏代替等;

這里要介紹的就是優(yōu)化用戶等待體驗(yàn)的骨架屏,它可以被視為是原來加載菊花圖的一種升級版,結(jié)合傳統(tǒng)的首屏優(yōu)化方法對應(yīng)用進(jìn)行優(yōu)化可以達(dá)到不錯的效果。

2. 骨架屏

骨架屏可以理解為是 當(dāng)數(shù)據(jù)還未加載進(jìn)來前,頁面的一個空白版本 ,一個簡單的關(guān)鍵渲染路徑。可以看一下下面Facebook的骨架屏實(shí)現(xiàn),可以看到在頁面完全渲染完成之前,用戶會看到一個樣式簡單,描繪了當(dāng)前頁面的大致框架的骨架屏頁面,然后骨架屏中各個占位部分被實(shí)際資源完全替換,這個過程中用戶會覺得內(nèi)容正在逐漸加載即將呈現(xiàn),降低了用戶的焦躁情緒,使得加載過程主觀上變得流暢。

可以看一下下面的示例圖,第一個為骨架屏,第二個為菊花圖,第三個為無優(yōu)化,可以看到相比于傳統(tǒng)的菊花圖會在感官上覺得內(nèi)容出現(xiàn)的流暢而不突兀,體驗(yàn)更加優(yōu)良。

如今這項(xiàng)技術(shù)已經(jīng)在Facebook、Google、支付寶、餓了么、簡書、新浪微博、知乎、美團(tuán)、領(lǐng)英等公司的產(chǎn)品中被廣泛的使用。在論壇和社區(qū)也都有不少文章討論骨架屏的實(shí)現(xiàn)和使用場景等。

3. 生成骨架屏的方法

生成骨架屏的方式主要有:

手寫HTML、CSS的方式為目標(biāo)頁定制骨架屏 做法可以參考 <Vue頁面骨架屏注入實(shí)踐> ,主要思路就是使用vue-server-renderer 這個本來用于服務(wù)端渲染的插件,用來把我們寫的 .vue 文件處理為 HTML ,插入到頁面模板的掛載點(diǎn)中,完成骨架屏的注入。這種方式不甚文明,如果頁面樣式改變了,還得改一遍骨架屏,增加了維護(hù)成本。 骨架屏的樣式實(shí)現(xiàn)參考CodePen

使用圖片作為骨架屏; 簡單暴力,讓UI同學(xué)花點(diǎn)功夫吧哈哈;小米商城的移動端頁面采用的就是這個方法,它是使用了一個Base64的圖片來作為骨架屏。

自動生成并自動插入靜態(tài)骨架屏 這種方法跟第一種方法類似,不過是自動生成骨架屏,可以關(guān)注下餓了么開源的插件page-skeleton-webpack-plugin ,它根據(jù)項(xiàng)目中不同的路由頁面生成相應(yīng)的骨架屏頁面,并將骨架屏頁面通過 webpack 打包到對應(yīng)的靜態(tài)路由頁面中,不過要注意的是這個插件目前只支持history方式的路由,不支持hash方式,且目前只支持首頁的骨架屏,并沒有組件級的局部骨架屏實(shí)現(xiàn),作者說以后會有計(jì)劃實(shí)現(xiàn) (issue9) 。

另外還有個插件 vue-skeleton-webpack-plugin ,它將插入骨架屏的方式由手動改為自動,原理在構(gòu)建時使用 Vue 預(yù)渲染功能,將骨架屏組件的渲染結(jié)果 HTML 片段插入 HTML 頁面模版的掛載點(diǎn)中,將樣式內(nèi)聯(lián)到 head 標(biāo)簽中。這個插件可以給單頁面的不同路由設(shè)置不同的骨架屏,也可以給多頁面設(shè)置,同時為了開發(fā)時調(diào)試方便,會將骨架屏作為路由寫入router中,可謂是相當(dāng)體貼了。

vue-skeleton-webpack-plugin 的具體使用參考vue-style-codebase ,主要關(guān)注build目錄的幾個文件,線上Demo 在Chrome的DevTools中把network的網(wǎng)速調(diào)為 Gast 3G / Slow 3G 就能看到效果了~

網(wǎng)上的帖子大多深淺不一,甚至有些前后矛盾,在下的文章都是學(xué)習(xí)過程中的總結(jié),如果發(fā)現(xiàn)錯誤,歡迎留言指出~

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • DataV?全屏容器組件源碼解析

    DataV?全屏容器組件源碼解析

    這篇文章主要為大家介紹了DataV?全屏容器組件源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 使用vue-router beforEach實(shí)現(xiàn)判斷用戶登錄跳轉(zhuǎn)路由篩選功能

    使用vue-router beforEach實(shí)現(xiàn)判斷用戶登錄跳轉(zhuǎn)路由篩選功能

    這篇文章主要介紹了vue使用vue-router beforEach實(shí)現(xiàn)判斷用戶登錄跳轉(zhuǎn)路由篩選,本篇文章默認(rèn)您已經(jīng)會使用 webpack 或者 vue-cli 來進(jìn)行環(huán)境的搭建,并且具有一定的vue基礎(chǔ)。需要的朋友可以參考下
    2018-06-06
  • 解決Antd Table表頭加Icon和氣泡提示的坑

    解決Antd Table表頭加Icon和氣泡提示的坑

    這篇文章主要介紹了解決Antd Table表頭加Icon和氣泡提示的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue3快速diff算法的處理過程

    Vue3快速diff算法的處理過程

    傳統(tǒng)的?DOM?更新方法會在有新舊子節(jié)點(diǎn)時卸載舊節(jié)點(diǎn)并掛載新節(jié)點(diǎn),這種方法沒有考慮到節(jié)點(diǎn)的復(fù)用可能性,diff?算法通過比較新舊節(jié)點(diǎn)的差異來復(fù)用節(jié)點(diǎn),從而優(yōu)化性能,本文給大家介紹了Vue3快速diff算法的處理過程,需要的朋友可以參考下
    2024-05-05
  • Vue Echarts實(shí)現(xiàn)圖表的動態(tài)適配以及如何優(yōu)化

    Vue Echarts實(shí)現(xiàn)圖表的動態(tài)適配以及如何優(yōu)化

    這篇文章主要介紹了Vue Echarts實(shí)現(xiàn)圖表的動態(tài)適配以及如何優(yōu)化,在實(shí)際的前端開發(fā)過程中,動態(tài)適配是一個非常重要的問題,在數(shù)據(jù)可視化的場景下,圖表的動態(tài)適配尤為重要,需要的朋友可以參考下
    2023-05-05
  • 詳解Vue雙向數(shù)據(jù)綁定原理解析

    詳解Vue雙向數(shù)據(jù)綁定原理解析

    本篇文章主要介紹了詳解Vue雙向數(shù)據(jù)綁定原理解析 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue中的傳值及賦值問題

    vue中的傳值及賦值問題

    這篇文章主要介紹了vue中的傳值及賦值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue前端el-input輸入限制輸入位數(shù)及輸入規(guī)則

    vue前端el-input輸入限制輸入位數(shù)及輸入規(guī)則

    這篇文章主要給大家介紹了關(guān)于vue前端el-input輸入限制輸入位數(shù)及輸入規(guī)則的相關(guān)資料,文中通過代碼介紹的介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • vue中el-autocomplete與el-select的異同

    vue中el-autocomplete與el-select的異同

    本文主要介紹了vue中el-autocomplete與el-select的異同,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Vue Router動態(tài)路由使用方法總結(jié)

    Vue Router動態(tài)路由使用方法總結(jié)

    這篇文章主要介紹了Vue Router動態(tài)路由使用方法總結(jié),需要的朋友可以參考下
    2023-10-10

最新評論