骨架屏(page-skeleton-webpack-plugin)初探
作者:小土豆biubiubiu
部落格園:https://www.cnblogs.com/HouJiao/
掘金:https://juejin.im/user/2436173500265335
微信公眾號:土豆媽的碎碎念(掃碼關注,一起吸貓,一起聽故事,一起學習前端技術)
作者文章的內容均來源於自己的實踐,如果覺得有幫助到你的話,可以點贊❤️給個鼓勵或留下寶貴意見
前言
最近頻頻看到了骨架屏
這個詞,其實在這之前鮮少聽過骨架屏
這個詞。只是平時在瀏覽網站時,會經常看到某個頁面在尚未獲取到真正資料時展示的一些佔位圖形
。
那實際上這個就是前面所描述的骨架屏
,即在頁面資料尚未載入前先給使用者展示出頁面的大致結構,在獲取到資料以後在具體展示頁面的內容。那骨架屏
loading
,在很大程度上提升了使用者體驗
。
所以今天這篇文章就是一篇骨架屏的初探與實踐
,內容本身非常簡單
,但是其中還是會有一些細節的東西需要注意,否則在實踐實總是無法出現正常的結果。
page-skeleton-webpack-plugin
page-skeleton-webpack-plugin
是餓了麼
團隊開發的一款webpack
外掛,這個外掛
可以根據不同的頁面生成不同的骨架屏頁面。
那接下來就在專案中實踐一下page-skeleton-webpack-plugin
。
專案簡介
本次的專案是使用vue-cli2
生成的一個專案,專案中元件的內容也非常的簡單,可以 戳這裡
獲取專案程式碼。
page-skeleton-webpack-plugin安裝
安裝page-skeleton
也非常簡單,直接執行命令:npm install --save-dev page-skeleton-webpack-plugin
即可。
注意
文件
中有明確說明還要安裝html-webpack-plugin
,本專案已經安裝了html-webpack-plugin
。如果你的專案中沒有安裝html-webpack-plugin
,可以執行npm install --save-dev html-webpack-plugin
進行安裝。
接下來就需要開始實踐了。
webpack配置
首先是需要我們在開發環境
中生成骨架屏
所以第一步是在開發環境
中配置SkeletonPlugin
。
// 程式碼位置:/skeleton-screen-demo/build/webpack.dev.conf.js
// 步驟1:引入骨架屏模組
const { SkeletonPlugin } = require('page-skeleton-webpack-plugin')
// 省略程式碼...
plugins: [
// 省略其他外掛的配置程式碼...
// 步驟2:在外掛中進行配置
new SkeletonPlugin({
pathname: path.resolve(__dirname, '../shell'), // the path to store shell file
staticDir: path.resolve(__dirname, '../dist'), // the same as the `output.path`
routes: ['/', '/home'], // Which routes you want to generate skeleton screen
})
]
SkeletonPlugin
外掛必選的三個配置項分別為:pathname
、staticDir
、routes
,這三個配置項的作用分別如下:
配置項 | 資料型別 | 作用 |
---|---|---|
pathname | String | 開發環境中點選儲存按鈕生成的骨架屏程式碼的儲存路徑 |
staticDir | String | 打包時生成的骨架屏的靜態資原始檔(官方文件指導要和webpack 打包輸出目錄一致) |
routes | Array | 需要生成骨架屏的路由(和專案中路由配置 的path 一致) |
執行專案
開發環境中的webpack
配置完成以後,使用npm run dev
執行專案。
不過不幸的是出現了錯誤