mpvue小程序骨架屏
可查看這篇文章《小程序骨架屏》css
原生微信小程序wxml骨架屏
可參考做者騰訊的git項目:《skeleton》html
svg骨架屏(圖片會變形)
vue-content-loader使用svn圖片作成骨架屏,而後判斷是否有數據,進行顯示隱藏vue
![圖片上傳中...]node
vue骨架屏
vue-skeleton-webpack-plugin 骨架屏框架,多種樣式webpack
可參考這個文章《vue-cli 構建的項目如何加入骨架屏 skeleton》git
這裏和方法一相同的建立和build裏建立流程同樣。主要修改的裏面的代碼:github
src下建立2種骨架屏展現,而後可根據不一樣路由頁面,進行顯示其餘一種,下面實現路由分配web
/build/webpack.skeleton.conf.js 修改成:vue-cli
'use strict'; const path = require('path') const merge = require('webpack-merge') const baseWebpackConfig = require('./webpack.base.conf') const nodeExternals = require('webpack-node-externals') const utils = require('./utils') const config = require('../config') const isProduction = process.env.NODE_ENV === 'production' const sourceMapEnabled = isProduction ? config.build.productionSourceMap : config.dev.cssSourceMap function resolve(dir) { return path.join(__dirname, dir) } let skeletonWebpackConfig = merge(baseWebpackConfig, { target: 'node', devtool: false, entry: { app: resolve('../src/entry-skeleton.js') }, output: Object.assign({}, baseWebpackConfig.output, { libraryTarget: 'commonjs2' }), externals: nodeExternals({ whitelist: /\.css$/ }), plugins: [] }) // important: enable extract-text-webpack-plugin skeletonWebpackConfig.module.rules[0].options.loaders = utils.cssLoaders({ sourceMap: sourceMapEnabled, extract: true }), module.exports = skeletonWebpackConfig
/build/webpack.dev.conf.js 和 /build/webpack.prod.conf.js 修改成小程序
const SkeletonWebpackPlugin = require('vue-skeleton-webpack-plugin') // inject skeleton content(DOM & CSS) into HTML new SkeletonWebpackPlugin({ webpackConfig: require('./webpack.skeleton.conf'), quiet: true, minimize: true, router: { mode: 'hash', routes: [ { path: '/page1', skeletonId: 'skeleton1' }, { path: '/', skeletonId: 'skeleton2' }, ] } }),
由上可看到,SPA 中多個骨架屏,可根據路由進行渲染不一樣的骨架模塊。
若是遇到v-for/wx:for,列表的,若是動態數據,我的建議是能夠寫個默認數據,由於骨架屏是須要數據纔能有標籤,再增長class的。能夠判斷當前的數組是否爲空,再渲染默認數據,若是數組真沒數據時,於把默認數據去除,顯示暫無數據頁面。
若是幫助到您,給個贊或收藏吧!!!!!!!!!!!!