详解VUE单页应用骨架屏方案

标题:详解VUE单页应用骨架屏方案

什么是骨架屏

骨架屏即为页面骨架,通俗点来说就是一个页面还没加载完成时,所出现的一种页面展示方案。它将页面大致的结构和样式提前定义好,填充占位元素在视觉上证明了页面正在加载。而实际上用户看到的只是一个假象,等待页面正式加载完成后,占位元素会被替换成真实的内容。

骨架屏在VUE单页应用中的应用

在VUE单页应用中,页面通过异步加载,很多时候需要等待异步请求完成之后才能正式显示页面,这时候我们可以使用骨架屏来占位。

实现方法

方案1: vue-content-loader

vue-content-loader是一个基于SVG实现的VUE组件,通过内嵌SVG来实现自定义骨架屏的功能。

在使用vue-content-loader时,我们可通过参数来定义骨架屏的生成条件。示例如下:

<template>
  <content-loader :width="400" :height="500" : animate="true">
     <rect x="20" y="20" rx="4" ry="4" width="100" height="10" />
     <rect x="20" y="40" rx="3" ry="3" width="50" height="10" />
     <rect x="20" y="60" rx="3" ry="3" width="100" height="10" />
     <rect x="20" y="80" rx="6" ry="6" width="200" height="10" />
     <circle cx="30" cy="30" r="30" />
  </content-loader>
</template>

上面的代码就定义了一个带有五个元素的骨架屏,每个元素对应页面中一个具体的区域,通过参数可以定义每个元素的位置、大小、形状、动画等等。

方案2: vue-skeleton-webpack-plugin

除了vue-content-loader,我们还可以基于webpack插件来实现骨架屏的生成。vue-skeleton-webpack-plugin是一个成熟的webpack插件方案。

使用vue-skeleton-webpack-plugin,我们需要在webpack配置文件中进行相关配置。具体的流程可参见官方文档。

示例

我们可以在项目中仿照下面的示例来实现骨架屏的效果。

示例1:通过vue-content-loader来实现

在示例中,我们通过在Home.vue组件中引用vue-content-loader组件来实现骨架屏。

<template>
    <div>
        <content-loader :width="400" :height="500" : animate="true">
           <rect x="20" y="20" rx="4" ry="4" width="100" height="10" />
           <rect x="20" y="40" rx="3" ry="3" width="50" height="10" />
           <rect x="20" y="60" rx="3" ry="3" width="100" height="10" />
           <rect x="20" y="80" rx="6" ry="6" width="200" height="10" />
           <circle cx="30" cy="30" r="30" />
        </content-loader>
    </div>
</template>

示例2:通过vue-skeleton-webpack-plugin来实现

我们也可以使用vue-skeleton-webpack-plugin来实现骨架屏的效果。以下是一份简单示例:

plugins: [
    new SkeletonWebpackPlugin({
      webpackConfig: {
        entry: {
          app: path.join(__dirname, './src/entry-skeleton.js')
        }
      },
      router: {
        mode: 'hash',
        routes: [
          { path: '/home', skeletonId: 'home' },
          { path: '/info', skeletonId: 'info' }
        ]
      }
    })
  ]

总结

VUE骨架屏生成方案很多,上面介绍的只是其中两种。骨架屏能够有效提升页面的用户体验,减少用户等待时间,尤其在移动端,其效果更加明显。我们在项目中使用骨架屏来占位会更好的体现我们的专业性和敬业精神。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解VUE单页应用骨架屏方案 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue项目打包优化实践指南(推荐!)

    我来为您详细讲解一下“Vue项目打包优化实践指南(推荐!)”的完整攻略。 1. 引言 Vue.js 是目前比较流行的前端框架之一,但是它在打包构建时会生成大量的文件,导致构建时间比较长,而且更占用服务器资源。因此,为了加快项目的运行速度,并降低服务器的负载,我们需要对 Vue 项目进行打包优化。 2. 打包优化实践指南 2.1 开启 gzip 压缩 优先考虑…

    Vue 2023年5月28日
    00
  • 公共Hooks封装文件下载useDownloadFile实例详解

    我会为你详细讲解“公共Hooks封装文件下载useDownloadFile实例详解”的完整攻略。 什么是公共Hooks 公共Hooks是指在React项目中,可以被多个组件共享的可重用代码片段。它们通常被封装在统一的模块中,以便于其他组件引用和使用。 useDownloadFile Hook useDownloadFile Hook是一个公共Hooks封装文…

    Vue 2023年5月28日
    00
  • Vue实现日历小插件

    下面是“Vue实现日历小插件”的完整攻略: 1. 确定需求和功能 在开发一个Vue的日历小插件之前,我们需要先明确需求和功能,常见的日历插件主要包括以下几点: 日历头部展示当前的日期或月份 展示每个月份所有的日期 支持选择日期等操作 2. 分析和设计组件 在设计组件之前,我们需要先分析和预设组件的结构和数据流,方便后续的代码开发。 我们的日历小插件组件需求可…

    Vue 2023年5月29日
    00
  • await 错误捕获实现方式源码解析

    让我们来详细讲解一下“await 错误捕获实现方式源码解析”的完整攻略。 什么是 await? 在 JavaScript 中,await 关键字可以用于暂停执行异步函数,并等待该异步函数的返回结果。我们可以使用 await 来获取异步操作中的结果,而不必使用回调函数或者 Promise 链来处理异步结果。 await 的错误捕获实现方式 在使用 await …

    Vue 2023年5月28日
    00
  • Vue实现插槽下渲染dom字符串的使用

    当我们在使用Vue时,我们经常会用到插槽,它可以让我们在组件中定义一些可重用的模板代码。然而,有时候我们需要在插槽中插入一些动态生成的DOM字符串,Vue并没有提供直接的方式来完成这个操作,此时我们可以使用v-html指令和render函数来实现。 使用v-html指令 使用v-html指令可以将一个字符串作为HTML代码进行渲染,这个过程和在模板中使用双括…

    Vue 2023年5月27日
    00
  • JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法

    下面是“JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法”的完整攻略。 实现思路 要实现这个功能,我们需要使用 JavaScript 监听网页的单击事件。当单击发生时,可以使用 window.open() 方法打开新窗口,也可以使用 window.close() 方法关闭当前窗口。 具体实现方法如下: 使用 document.addEven…

    Vue 2023年5月28日
    00
  • vue初尝试–项目结构(推荐)

    下面是针对“Vue初尝试–项目结构(推荐)”的完整攻略: 1. 什么是Vue Vue是一套用于构建用户界面的渐进式框架。与其他大型框架不同的是,Vue被设计为可以逐层应用。Vue的核心库只关注视图层,非常容易学习和集成,同时也可以通过插件或结合其他库来构建完整的单页应用。 2. Vue项目结构推荐 下面,我们来看一下Vue项目的结构推荐: ├── buil…

    Vue 2023年5月29日
    00
  • 详解vue移动端项目代码拆分记录

    详解vue移动端项目代码拆分记录 背景 随着vue项目的不断壮大,代码量越来越大,单一入口文件会变得越来越复杂,代码的维护和管理也越来越困难,因此我们需要对vue项目进行代码拆分。 代码拆分方案 我们可以将一个大的vue项目拆分成多个子项目,然后通过webpack构建工具自动化集成,这样项目结构更为清晰,维护和管理也更加轻松。 以下是代码拆分方案的具体实现步…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部