使用这 6个Vue加载动画库来减少我们网站的跳出率

阻止人们离开我们的网站的一种方法是添加视觉反馈,让他们知道我们的网页正在加载而不是坏了。 视觉反馈还吸引了人们的注意力,因此等待时间似乎比静态屏幕要短得多。 无论是添加微调动画还是添加实际进度条,提供美观的视觉元素都可以改善网站的性能,也会让访问者体验更加的好。

Posted in Vue.js onMay 18, 2021

对于Vue开发人员而言,有大量类似的库供我们使用。

在本文中,分享 6 个我的最爱。

1. Vue Simple Spinner

github: https://dzwillia.github.io/vue-simple-spinner/examples/

顾名思义,这是一个非常简单的组件,但功能仍然非常强大。 Vue Simple Spinner提供了可定制加载样式。 使用 props,我们可以控制对应的样式:

  • Size
  • Background and foreground colors
  • Speed
  • Label Text
  • Much more…

安装命令:

npm install vue-simple-spinner --save.

然后,将其导入到组件中,在模板中进行声明,然后更改所需的 props:

<template>
   <vue-simple-spinner size="medium" />
</template>
<script>
import VueSimpleSpinner from 'vue-simple-spinner'
export default {
   components: { 
      VueSimpleSpinner
   }
}

效果如下:

使用这 6个Vue加载动画库来减少我们网站的跳出率

2. Vue Radial Progress

github 地址:https://github.com/wyzantinc/vue-radial-progress

如果你想要的是一个真正的进度条而不是旋转动画,Vue Radial Progress 一个非常棒的库。

Vue Radial Progress 可以在在进度栏中设置步骤数以及用户当前所处的步骤。 然后,根据完成的数量填充进度条的一定百分比。

具有平滑的动画,可自定义的功能以及基于SVG的填充系统,当您具有包含多个离散步骤的异步过程时,此库将非常强大。

安装:

npm install --save vue-radial-progress

此外,该库使用组件插槽使圆内添加文本变得简单

<template>
  <radial-progress-bar :diameter="200"
                       :completed-steps="completedSteps"
                       :total-steps="totalSteps">
   <p>Total steps: {{ totalSteps }}</p>
   <p>Completed steps: {{ completedSteps }}</p>
  </radial-progress-bar>
</template>

<script>
import RadialProgressBar from 'vue-radial-progress'

export default {
  data () {
    return {
      completedSteps: 0,
      totalSteps: 10
    }
  },

  components: {
    RadialProgressBar
  }
}
</script>

使用这 6个Vue加载动画库来减少我们网站的跳出率

3.Vue Loading Overlay

github: https://github.com/ankurk91/vue-loading-overlay

**Vue Loading Overlay **是全屏加载组件的理想解决方案。 例如,如果应用程序包含某种仪表板,并且要等到所有数据加载完毕后再让用户四处点击,则此库很有用。

这个库还有一个好用的特性就是加载时,用户点击遮罩,可以取消加载,并触发一个事件,我们可以使用该事件取消正在运行的任何任务。

添加此功能,可以允许用户自行决定任务何时花费太长时间来加载和退出。 这意味着他们不必离开页面。

安装命令:

npm install --save vue-loading-overlay

下面是 Loading Overlay library 使用示例:

<template>
    <div class="vld-parent">
        <loading :active.sync="isLoading" 
        :can-cancel="true" 
        :on-cancel="onCancel"
        :is-full-page="fullPage"></loading>
        
        <label><input type="checkbox" v-model="fullPage">Full page?</label>
        <button @click.prevent="doAjax">fetch Data</button>
    </div>
</template>

<script>
    // Import component
    import Loading from 'vue-loading-overlay';
    // Import stylesheet
    import 'vue-loading-overlay/dist/vue-loading.css';
    
    export default {
        data() {
            return {
                isLoading: false,
                fullPage: true
            }
        },
        components: {
            Loading
        },
        methods: {
            doAjax() {
                this.isLoading = true;
                // simulate AJAX
                setTimeout(() => {
                  this.isLoading = false
                },5000)
            },
            onCancel() {
              console.log('User cancelled the loader.')
            }
        }
    }
</script>

使用这 6个Vue加载动画库来减少我们网站的跳出率

4. Vue Progress Path

github 地址:https://github.com/Akryum/vue-progress-path

Vue Progress Path 是最流行的加载库之一。由 Vue Core团队成员Guillaume Chau创建,这也是我最喜欢使用的工具之一。

使用 SVG,Vue Progress Path 会创建成形的进度条。 它带有几个内置的形状,但是最强大的功能是能够传递我们自己的SVG形状-这意味着无限的可能性。

使用npm i --save vue-progress-path将其添加到项目中,然后使用将该文件全局添加到src/main.js文件中。

import 'vue-progress-path/dist/vue-progress-path.css'
import VueProgress from 'vue-progress-path'

Vue.use(VueProgress, {
  // defaultShape: 'circle',
})

现在,来看看如何向组件添加进度 path 。

<loading-progress
  :progress="progress"
  :indeterminate="indeterminate"
  :counter-clockwise="counterClockwise"
  :hide-background="hideBackground"
  shape="semicircle"
  size="64"
/>

这个库还有一个很好地方,更改样式无须通过 props ,直接使用CSS代码来编辑样式:

.vue-progress-path path {
  stroke-width: 12;
}

.vue-progress-path .progress {
  stroke: red;
}

使用这 6个Vue加载动画库来减少我们网站的跳出率

5. Vue Loading Button

github 地址:https://github.com/shwilliam/vue-loading-button

Vue Loading Button 是一种简单而有效的方式,可以向用户显示某些内容正在加载。

它所做的只是在按钮被点击时添加一个转轮动画。但有了平滑的动画,它可以创建一个无缝的外观,使网站流行。

安装:

npm install --save vue-loading-button

示例:

<template>
   <VueLoadingButton aria-label='Send message' />
</template>
<script>
import VueLoadingButton from 'vue-loading-button'

export default {
  components: {
    VueLoadingButton,
  }
}
</script>

使用这 6个Vue加载动画库来减少我们网站的跳出率

6. TB Skeleton

github 地址:https://github.com/anthinkingcoder/tb-skeleton

使用这 6个Vue加载动画库来减少我们网站的跳出率

TBSkeleton 的体验是非常好的。但是,这需要相当繁琐的代码,也要合理的规划元素。

我认为理解这一点的最好方法就是写个例子。

首先,使用npm install --save tb-skeleton安装。 然后,将下面内容添加到src/main.js文件中。

import skeleton from 'tb-skeleton'
import  'tb-skeleton/dist/skeleton.css'
Vue.use(skeleton)

下面是 TBSkeleton 文档中的骨架组件示例。

<template>
  <div>
    <skeleton :theme="opacity" :shape="radius" :bg-color="#dcdbdc">
     <tb-skeleton  width="30%" :aspect-ratio="1"  :shape="circle" bg-color="#eee"></tb-skeleton>
     <tb-skeleton  width="30%" :aspect-ratio=".3"></tb-skeleton>
     <tb-skeleton  width="30%" :aspect-ratio=".3"></tb-skeleton>
   </skeleton>
  </div>
</template>
<script>
  import {TbSkeleton,Skeleton} from 'tb-skeleton'
  export default {
    components: {
      TbSkeleton,
      Skeleton
    }
  }
</script>

如上所见,如果要使用这个库,需要一些时间成本,但在一些需要用户体验极好的需求里,可以使用它。

~ 完,我是刷碗智,去刷碗咯了,下期见~


代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug

Vue.js 相关文章推荐
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
vue 插槽简介及使用示例
Nov 19 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
Vue过滤器,生命周期函数和vue-resource简单介绍
Jan 12 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
vue实现倒计时功能
Mar 24 Vue.js
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
vue选项卡切换的实现案例
Apr 11 Vue.js
vue生命周期钩子函数以及触发时机
Apr 26 Vue.js
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
详解vue中v-for的key唯一性
解读Vue组件注册方式
May 15 #Vue.js
如何理解Vue简单状态管理之store模式
May 15 #Vue.js
Vue如何实现组件间通信
May 15 #Vue.js
详解Vue的sync修饰符
May 15 #Vue.js
深入理解Vue的数据响应式
May 15 #Vue.js
You might like
php实现加减法验证码代码
2014/02/14 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
js对象的复制继承实例
2015/01/10 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
axios拦截设置和错误处理方法
2018/03/05 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
Python装饰器使用示例及实际应用例子
2015/03/06 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
Django框架封装外部函数示例
2019/05/28 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
中专毕业生求职简历的自我评价
2013/10/21 职场文书
水利水电专业自荐信
2014/07/08 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
人民的好儿女观后感
2015/06/18 职场文书
化验室安全管理制度
2015/08/06 职场文书
php实现自动生成验证码的实例讲解
2021/11/17 PHP