摘要:给项目加一个骨架屏吧骨架屏可以理解为是当数据还未加载进来前,页面的一个空白版本,一个简单的关键渲染路径。安装过程中报错提示如下执行这个命令使用我这个项目是基于脚手架开发的。
给项目加一个骨架屏吧
骨架屏可以理解为是当数据还未加载进来前,页面的一个空白版本,一个简单的关键渲染路径。用户会看到一个样式简单,描绘了当前页面的大致框架的骨架屏页面,然后骨架屏中各个占位部分被实际资源完全替换,这个过程中用户会觉得内容正在逐渐加载即将呈现,降低了用户的焦躁情绪,使得加载过程主观上变得流畅。
安装这里采用饿了么开源的方案page-skeleton-webpack-plugin。
npm install --save-dev page-skeleton-webpack-plugin npm install --save-dev html-webpack-plugin
安装过程中报错提示如下
ERROR: Failed to download Chromium r515411! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOA D" env variable to skip download.
执行这个命令
npm config set puppeteer_download_host=https://storage.googleapis.com.cnpmjs.org使用
我这个项目是基于vue-cli3脚手架开发的。
第一步配置插件创建一个vue.config.js文件。
const { SkeletonPlugin } = require("page-skeleton-webpack-plugin") const path = require("path") module.exports = { configureWebpack: { plugins: [ new SkeletonPlugin({ pathname: path.resolve(__dirname, "./shell"), // 用来存储 shell 文件的地址 staticDir: path.resolve(__dirname, "./dist"), // 最好和 `output.path` 相同 routes: ["/"], // 将需要生成骨架屏的路由添加到数组中 excludes: [".van-nav-bar", ".van-tabbar"] // 需要忽略的css选择器 }) ], }, chainWebpack: (config) => { // 解决vue-cli3脚手架创建的项目压缩html 干掉导致骨架屏不生效 if (process.env.NODE_ENV !== "development") { config.plugin("html").tap(opts => { opts[0].minify.removeComments = false return opts }) } }, };
在项目根目录下面创建一个shell文件夹。
chainWebpack配置 这个是解决vue-cli3打包的骨架屏不生效的BUG
在你启动 App 的根元素内部添加
第三步:界面操作生成、写入骨架页面
在开发页面中通过 Ctrl|Cmd + enter 呼出插件交互界面,或者在在浏览器的 JavaScript 控制台内输入toggleBar 呼出交互界面。
点击交互界面中的按钮,进行骨架页面的预览,这一过程可能会花费 20s 左右时间,当插件准备好骨架页面后,会自动通过浏览器打开预览页面
扫描预览页面中的二维码,可在手机端预览骨架页面,可以在预览页面直接编辑源码,通过点击右上角写入按钮,将骨架页面写入到 shell 文件夹中。
通过 webpack 重新打包应用,当页面重新启动后,就能够在获取到数据前看到应用的骨架结构了。
最终效果 demo 地址https://vbook.langpz.com
我的博客和GitHub地址https://github.com/lanpangzhi
http://blog.langpz.com
参考https://github.com/cnpm/cnpmjs.org/issues/1246
https://github.com/ElemeFE/page-skeleton-webpack-plugin
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/104679.html
摘要:很多小伙伴练手都会去仿写豆瓣电影或者网易云音乐,所以,这回干脆把两个集合起来,具体长什么样,请各位看预览或下面图片啦。怎么折腾法呢比如豆瓣部分我使用了,网易云部分则没有,网易的组件则是自己造的轮子,当然在实际开发中肯定不会这么搞啦。。 很多小伙伴练手都会去仿写豆瓣电影或者网易云音乐,所以,这回干脆把两个集合起来,具体长什么样,请各位看预览或下面图片啦。 目的: 做这个项目最主要的目的是...
摘要:最简化权限管理系统,基于开发。基于开发,唯一优化的是用权限和路由别名绑定,这样代码写好之后就可以直接使用。如果是超级管理员,即使没有这个权限会自动赋予权限给超级管理员角色。默认管理员账号密码。然后正常执行命令其他命令即可。 Any 最简化权限管理系统,基于 Laravel5.4 开发。由于 Laravel5.5 发布推迟,只好先写个 Laravel5.4版本的,后面再升级上去。演示地址...
阅读 1310·2023-04-26 03:05
阅读 759·2021-10-19 11:43
阅读 3205·2021-09-26 09:55
阅读 823·2019-08-30 15:56
阅读 978·2019-08-30 15:44
阅读 1227·2019-08-30 15:44
阅读 2713·2019-08-30 14:23
阅读 3232·2019-08-30 13:13