详解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日

相关文章

  • ES6 Promise对象概念及用法实例详解

    ES6 Promise对象概念及用法实例详解 什么是Promise对象? Promise是ES6新增的一种异步编程解决方案。它将异步操作封装成一个对象,可以更直观、更优雅地表达异步操作。Promise对象的最大特点是它具备状态,分别为: Pending(进行中) Fulfilled(已成功) Rejected(已失败) 即一旦Promise对象的状态发生改变…

    Vue 2023年5月28日
    00
  • vue composition-api 封装组合式函数的操作方法

    下面是对“Vue composition-api 封装组合式函数的操作方法”的详细讲解攻略: 什么是 Vue Composition API Vue Composition API 是 Vue 3 新增的 API ,用于更灵活的组合逻辑复杂的逻辑和行为。它与 Vue 2.x 中的 Options API 不同,Options API 是基于选项进行开发的。在…

    Vue 2023年5月28日
    00
  • Vue防抖与节流的使用介绍

    我来为你详细讲解“Vue防抖与节流的使用介绍”的完整攻略,请仔细阅读以下内容: 什么是防抖和节流 在介绍防抖和节流之前,我们先来了解一下两个重要概念: 函数调用频率:函数被调用的次数。比如说,你在搜索框中输入关键字,搜索框会实时检索结果,此时,输入的操作就是函数,它被调用的频率就是你输入的频率。 函数执行时间:函数运行所需的时间。比如说,你在网页上点击一个按…

    Vue 2023年5月29日
    00
  • vue中的vendor.js文件过大问题及解决

    问题描述: 在使用 Vue 应用构建时,有时会遇到 vendor.js 文件过大的问题,导致应用加载速度缓慢,用户体验受到影响,那么如何解决这个问题呢? 问题分析: Vue 应用在打包的时候,会抽取第三方库和模块到一个名为 vendor.js 的文件中,这个文件包含了所有在项目中被使用的第三方库和模块,如果这些库和模块很多,那么 vendor.js 文件会变…

    Vue 2023年5月28日
    00
  • 浅谈在Vue.js中如何实现时间转换指令

    怎样在Vue.js中定义自定义指令Vue.js框架中提供了一个全局指令注册方法Vue.directive,可以方便地添加自定义指令。指令本质上就是一个指令函数,有五个钩子函数,分别对应着不同的阶段。 如何实现时间转换指令在Vue.js中,可以采用过滤器方式来实现时间转换,也可以采用指令方式来实现。在本文中,我们主要介绍如何使用指令来实现时间转换功能。时间转换…

    Vue 2023年5月28日
    00
  • Vue3 <script setup lang=“ts“> 的基本使用

    Vue3提供了一种名为 <script setup> 的语法糖,它可以让我们更加便捷地编写Vue组件。在加上 lang=”ts” 后可以通过TypeScript来书写Vue3组件,提高代码的可读性和类型安全性。 首先,让我们创建一个Vue3组件,该组件可以在页面上显示一个计数器,并且能够点击按钮对其进行累加操作。 <template>…

    Vue 2023年5月27日
    00
  • Vue2.0脚手架搭建

    Vue2.0脚手架搭建 什么是Vue脚手架 Vue脚手架通常是指在开始Vue项目开发时所使用的一个基础模板,它会为我们预先搭好项目的基础结构,例如自动引入Vue,预定义一些常用文件夹例如views、utils等,还会自动配置webpack等工具,从而可以省去我们手动搭建项目基础结构的时间和精力。当前比较常用的Vue脚手架工具有Vue-cli 2.x和Vue-…

    Vue 2023年5月28日
    00
  • Vue2.x 项目性能优化之代码优化的实现

    为了优化Vue2.x项目的性能,代码优化是非常重要的一部分。下面是一些可以实现的代码优化技巧: 1. 使用Vue的异步组件 Vue的异步组件用于延迟加载组件,避免不必要的资源浪费。异步组件可以通过Vue.component或Vue.extend创建。 以下代码展示了如何在Vue中使用异步组件: // 普通组件 import NormalComp from ‘…

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