返回顶部
首页 > 资讯 > 前端开发 > VUE >vue中的骨架屏怎么生成
  • 873
分享到

vue中的骨架屏怎么生成

2024-04-02 19:04:59 873人浏览 安东尼
摘要

本篇内容主要讲解“Vue中的骨架屏怎么生成”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中的骨架屏怎么生成”吧! 在vue中,

本篇内容主要讲解“Vue中的骨架屏怎么生成”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中的骨架屏怎么生成”吧!

在vue中,骨架屏就是在页面数据尚未加载前先给用户展示出页面的大致结构,直到请求数据返回后再渲染页面,补充进需要显示的数据内容;骨架屏可以理解为是当数据还未加载进来前,页面的一个空白版本,一个简单的关键渲染路径。

vue中的骨架屏怎么生成

教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。

相比于早些年前后端代码紧密耦合、后端工程师还得写前端代码的时代,如今已发展到前后端分离,这种开发方式大大提升了前后端项目的可维护性与开发效率,让前后端工程师关注于自己的主业。然而在带来便利的同时,也带来了一些弊端,比如首屏渲染时间(FCP)因为首屏需要请求更多内容,比原来多了更多Http的往返时间(RTT),这造成了白屏,如果白屏时间过长,用户体验会大打折扣,如果用户网速差,则FCP会更长。

由此引申出一系列的优化方法,骨架屏也因此被提出。

1. FCP优化

Google 提出的以用户为中心的四个页面性能衡量指标中,FP/FCP可能是开发者们最熟悉的了:

vue中的骨架屏怎么生成

为了优化首屏渲染时间这个指标,减少白屏时间,前端仔们想了很多办法:

  • 加速或减少HTTP请求损耗:使用CDN加载公用库,使用强缓存和协商缓存,使用域名收敛,小图片使用Base64代替,使用Get请求代替Post请求,设置 Access-Control-Max-Age 减少预检请求,页面内跳转其他域名或请求其他域名的资源时使用浏览器prefetch预解析等;

  • 延迟加载:非重要的库、非首屏图片延迟加载,SPA的组件懒加载等;

  • 减少请求内容的体积:开启服务器Gzip压缩,jsCSS文件压缩合并,减少cookies大小,SSR直接输出渲染后的html等;

  • 浏览器渲染原理:优化关键渲染路径,尽可能减少阻塞渲染的JS、CSS;

  • 优化用户等待体验:白屏使用加载进度条、菊花图、骨架屏代替等;

这里要介绍的就是优化用户等待体验的骨架屏,它可以被视为是原来加载菊花图的一种升级版,结合传统的首屏优化方法对应用进行优化可以达到不错的效果。

2. 骨架屏

骨架屏就是在页面数据尚未加载前先给用户展示出页面的大致结构,直到请求数据返回后再渲染页面,补充进需要显示的数据内容。常用于文章列表、动态列表页等相对比较规则的列表页面。

骨架屏可以理解为是当数据还未加载进来前,页面的一个空白版本,一个简单的关键渲染路径。可以看一下下面Facebook的骨架屏实现,可以看到在页面完全渲染完成之前,用户会看到一个样式简单,描绘了当前页面的大致框架的骨架屏页面,然后骨架屏中各个占位部分被实际资源完全替换,这个过程中用户会觉得内容正在逐渐加载即将呈现,降低了用户的焦躁情绪,使得加载过程主观上变得流畅。

vue中的骨架屏怎么生成

可以看一下下面的示例图,第一个为骨架屏,第二个为菊花图,第三个为无优化,可以看到相比于传统的菊花图会在感官上觉得内容出现的流畅而不突兀,体验更加优良。

vue中的骨架屏怎么生成

3. 生成骨架屏的方法

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

  1. 手写HTML、CSS的方式为目标页定制骨架屏 做法可以参考<Vue页面骨架屏注入实践>,主要思路就是使用 vue-server-renderer 这个本来用于服务端渲染的插件,用来把我们写的.vue文件处理为HTML,插入到页面模板的挂载点中,完成骨架屏的注入。这种方式不甚文明,如果页面样式改变了,还得改一遍骨架屏,增加了维护成本。 骨架屏的样式实现参考 CodePen

  2. 使用图片作为骨架屏; 简单暴力,让UI同学花点功夫吧哈哈;小米商城的移动端页面采用的就是这个方法,它是使用了一个Base64的图片来作为骨架屏。

  3. 自动生成并自动插入静态骨架屏 这种方法跟第一种方法类似,不过是自动生成骨架屏,可以关注下饿了么开源的插件 page-skeleton-webpack-plugin ,它根据项目中不同的路由页面生成相应的骨架屏页面,并将骨架屏页面通过 WEBpack 打包到对应的静态路由页面中,不过要注意的是这个插件目前只支持history方式的路由,不支持hash方式,且目前只支持首页的骨架屏,并没有组件级的局部骨架屏实现,作者说以后会有计划实现(issue9)。

另外还有个插件 vue-skeleton-webpack-plugin,它将插入骨架屏的方式由手动改为自动,原理在构建时使用 Vue 预渲染功能,将骨架屏组件的渲染结果 HTML 片段插入 HTML 页面模版的挂载点中,将样式内联到 head 标签中。这个插件可以给单页面的不同路由设置不同的骨架屏,也可以给多页面设置,同时为了开发时调试方便,会将骨架屏作为路由写入router中,可谓是相当体贴了。

vue-skeleton-webpack-plugin的具体使用参考 vue-style-codebase,主要关注build目录的几个文件,线上Demo 在Chrome的DevTools中把network的网速调为Gast 3G / Slow 3G就能看到效果了~

到此,相信大家对“vue中的骨架屏怎么生成”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: vue中的骨架屏怎么生成

本文链接: https://lsjlt.com/news/88151.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue中的骨架屏怎么生成
    本篇内容主要讲解“vue中的骨架屏怎么生成”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中的骨架屏怎么生成”吧! 在vue中,...
    99+
    2024-04-02
  • vue实现骨架屏的示例
    目录骨架屏用途Vue架构骨架屏思路大纲定义一个抽象组件获取插槽并初始化操作骨架屏循环slots操作类名操作vnode的静态类名使用方法传值效果如下完整地址骨架屏用途 作为...
    99+
    2024-04-02
  • vue项目中使用骨架屏的方法
    现在的应用开发,基本上都是前后端分离的,前端主流框架有SPA、MPA等,那么解决页面渲染、白屏时间成为首要关注的点 webpack可以按需加载,减小首屏需要加载代码的体积; 使用CD...
    99+
    2024-04-02
  • Vue实现骨架屏的示例代码
    vue实现页面加载占位 效果如下 思路与实现 页面加载时用户等待,此时与用户交互的方式通常有等待层、进度条、加载动画等;本次介绍加载占位,把页面即将展示的样子用css背景展示出来,...
    99+
    2023-03-19
    Vue实现骨架屏 Vue骨架屏
  • Vue单页面骨架屏的示例分析
    这篇文章主要介绍了Vue单页面骨架屏的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关于骨架屏介绍骨架屏的作用主要是在网络请求较慢时...
    99+
    2024-04-02
  • 如何实现基于vue-skeleton-webpack-plugin的骨架屏
    小编给大家分享一下如何实现基于vue-skeleton-webpack-plugin的骨架屏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了...
    99+
    2024-04-02
  • 一种简单的Android骨架屏实现方案----0侵入0成本
    对骨架屏的理解 什么是骨架屏 所谓骨架屏,就是在页面进行耗时加载时,先展示的等待 UI, 以告知用户程序目前正在运行,稍等即可。 等待的UI大部分是 loading 转圈的弹窗,有的是自己风格的小动画。其实大同小异。而骨架屏无非也是一个等待...
    99+
    2023-08-31
    android
  • vue怎么使用vue-baberrage生成弹幕
    本篇内容介绍了“vue怎么使用vue-baberrage生成弹幕”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如何使用vue-baberra...
    99+
    2023-07-04
  • vue+F2怎么生成折线图
    本篇内容介绍了“vue+F2怎么生成折线图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果图打开命令窗口,通过 npm 安装F2npm&n...
    99+
    2023-06-29
  • Vue生态的新成员Pinia怎么用
    小编给大家分享一下Vue生态的新成员Pinia怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Pinia是Vue应用程序的状态管理方案,是Vuex核心团队成员...
    99+
    2023-06-26
  • Vue怎么动态生成数据字段
    本篇内容主要讲解“Vue怎么动态生成数据字段”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue怎么动态生成数据字段”吧!动态生成数据字段实例1.父组件定义data里面的数据字段异步请求获取数据...
    99+
    2023-06-29
  • vue中怎么生成token并保存到本地存储
    这篇文章给大家介绍vue中怎么生成token并保存到本地存储,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先回顾一下token:token认证是RESTFUL.api的一个很重要的部...
    99+
    2024-04-02
  • SQLServer中怎么生成XML
    本篇文章为大家展示了SQLServer中怎么生成XML,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  SQLServer2000是一款功能性较好的数据库,使用fo...
    99+
    2024-04-02
  • ASP.NET中怎么生成XML
    本篇文章给大家分享的是有关ASP.NET中怎么生成XML,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.业务逻辑层:public DataSet ABCD...
    99+
    2023-06-17
  • eclipse中怎么生成bean
    在Eclipse中,可以通过以下步骤生成Bean:1. 打开Eclipse,并创建一个Java项目。2. 在项目的src目录下创建一...
    99+
    2023-09-27
    eclipse
  • Vue组件文档怎么生成工具库
    这篇文章主要讲解了“Vue组件文档怎么生成工具库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue组件文档怎么生成工具库”吧!目录解析.vue 文件提取文档信息提取组件名称、描述、prop...
    99+
    2023-06-20
  • 怎么通过yarn自动生成vue组件
    这篇文章主要介绍“怎么通过yarn自动生成vue组件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么通过yarn自动生成vue组件”文章能帮助大家解决问题。实践步骤安装一下chalk,这个插件能让...
    99+
    2023-07-04
  • Vue怎么使用electron生成桌面应用
    这篇文章主要介绍“Vue怎么使用electron生成桌面应用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue怎么使用electron生成桌面应用”文章能帮助大家解决问题。安装依赖安装指定版本 此...
    99+
    2023-07-06
  • Python中的生成器怎么实现
    本篇内容主要讲解“Python中的生成器怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的生成器怎么实现”吧!前言生成器很容易实现,但却不容易理解。生成器也可用于创建迭代器,...
    99+
    2023-06-29
  • 使用Vue怎么动态生成表格的行和列
    这篇文章将为大家详细讲解有关使用Vue怎么动态生成表格的行和列,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体的实现代码如下:<template&g...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作