6 个简单实用的 Vue Loader 加载动画库

6 个简单实用的 Vue Loader 加载动画库
喜欢就关注我们吧

今天我要分

没有人喜欢干坐着等待页面加载。不信你看谷歌2017年公布的数据,就可以发现加载时间和网页跳出率呈现很明显的正相关关系。

6 个简单实用的 Vue Loader 加载动画库

防止用户离开网站的一种方法是添加可视化反馈,以便让他们知道网站只是在加载而不是坏掉了,同时还可以吸引他们的注意力,仿佛等待时间比静态屏幕短了许多。

无论是旋转动画还是实际进度条,漂亮的视觉元素往往可以改善网站的表现,使访问者更愉悦。

幸运的是,有许许多多令人惊艳的加载动画库可供Vue开发人员选择,只要几分钟就可以添加到项目中,实在方便。

本文将介绍6个我认为最赞的Vuejs加载器。一起来看看吧。

1. Vue Simple Spinner

顾名思义,这是一个非常简单的组件,但非常强大。Vue Simple Spinner提供了一个可自定义的旋转元素。我们通过props来控制微调器:

  • 尺寸
  • 背景色和前景色
  • 速度
  • 标签文字
  • 等等等等…

只需几行代码,我们就可以在项目中添加旋转器哦。首先,在命令行中用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 Loader 加载动画库

完工,我们的旋转器就搞定了。

2. Vue Radial Progress

如果你想要实际的进度条而不是旋转动画,那么请看Vue Radial Progress,这是一个很棒的库。

Vue Radial Progress允许你设置进度条中的步骤数以及用户当前所在的步骤。然后,它会根据完成的多少来填充进度条的百分比。

凭借流畅的动画、可自定义的功能和基于SVG的填充系统,这个库在遇到具有多个离散步骤的异步进程时,尤其好用。

实施起来也是轻而易举。

首先,只需使用npm install --save vue-radial-progress安装库。下面是文档中的示例组件:

如你所见,当主要props是大小、完成步骤和步骤总数时,真的非常简单。

此外,这个库使用了组件插槽,这使得你很容易就可以在圆内添加文本。

<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 {
      completedSteps0,
      totalSteps10
    }
  },

  components: {
    RadialProgressBar
  }
}
</script>

6 个简单实用的 Vue Loader 加载动画库

3. Vue Loading Overlay

Vue Loading Overlay是全屏加载组件的完美解决方案。例如,如果你的应用程序包含某种仪表板,并且你想等到所有数据都加载完毕,等到用户单击鼠标,那么这个库可能会帮上你的大忙。

我觉得这个库的一大特点是允许用户在点击时取消加载覆盖。关闭覆盖将触发这样一个事件:取消正在运行的任务。

通过添加此功能,你可以让用户自行决定当任务加载和退出时间过长时怎么做。这意味着他们不必离开页面。

要将这个库添加到项目中,运行npm install --save vue-loading-overlay即可。

接下来,还是通过示例组件来说明Vue Loading Overlay库。组件需要一些props来确定可见性、处理取消和更改显示。

<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 {
                isLoadingfalse,
                fullPagetrue
            }
        },
        components: {
            Loading
        },
        methods: {
            doAjax() {
                this.isLoading = true;
                // simulate AJAX
                setTimeout(() => {
                  this.isLoading = false
                },5000)
            },
            onCancel() {
              console.log('User cancelled the loader.')
            }
        }
    }
</script>

6 个简单实用的 Vue Loader 加载动画库

4. Vue Progress Path

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

Vue Progress path通过SVG已创建了成形的进度条。不但自带内置形状,而且最强大的功能是能够传入自定义的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',
})

现在,让我们看看如何向组件添加进度路径。

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

这个库的另一个特点是易于自定义。不再强迫你处理props来自定义外观,你只需编写CSS代码来编辑样式即可。

.vue-progress-path path {
  stroke-width12;
}

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

6 个简单实用的 Vue Loader 加载动画库

5. 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>

简而言之,你所要做的就是根据情况将加载值设置为true/false。你还可以添加自定义样式以适合你的应用程序。

6 个简单实用的 Vue Loader 加载动画库

6. TBSkeleton

骨架屏加载是提供速度错觉设计的好方法。

下面的屏幕截图是一个很好的骨架屏加载示例。

6 个简单实用的 Vue Loader 加载动画库

TBSkeleton是在Vue项目中实现此功能的好方法。但是,它需要大量代码,并且需要明智地规划元素。

创建Skeleton时,你基本上必须在唯一的Skeleton元素中创建不同元素的所有轮廓。

还是通过一个例子来理解吧。

首先,使用npm install --save tb-skeleton安装。然后,通过这些代码行将其添加到Vue项目的src/main.js文件中。

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

下面是来自TBSkeleton文档的Skeleton组件示例。

<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>

如你所见,如果要添加到更复杂的组件中,肯定要费一番功夫,但绝对值得。

总结

这些只是众多出色的Vue加载器库中的一小部分。相信我,试过之后,你绝对会对它们爱不释手。

感谢大家的阅读。欢迎分享给你的小伙伴们。

(本文完)

6 个简单实用的 Vue Loader 加载动画库

每日分享前端插件干货,欢迎关注!

点赞和在看就是最大的支持❤️

原文始发于微信公众号(前端新世界):6 个简单实用的 Vue Loader 加载动画库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/29358.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!