vue 页面加载进度条组件实例


Posted in Javascript onFebruary 05, 2018

页面加载进度条最初我是在youtube上看到的,后面几乎在各大网站上都能见到它的身影,可以让用户在加载页面的时候不会对着完全空白的页面发呆,提升用户体验

但是从开发角度讲,这种进度条在真实性上确实很难把握,因为在逻辑代码加载完成之前,我们都不能统计到进度,而逻辑代码自身的进度也无法统计。另外,我们不可能监控到所有资源的加载情况。

事实上,用户并不是在乎你的页面究竟加载了百分之几,而真正关心的是离加载完还有多久,以及这个空白页面是没有加载完,还是加载完就是空白的。所以没我们需要去“模拟”一个进度条,在后端数据返回前利用一个假的动画效果模拟加载,在数据返回后读完进度条并且隐藏。

// progress-bar.vue
<template>
 <transition name="fade">
 <div class="progress-bar" v-if="isShow">
 </div>
 </transition>
</template>

<script type="text/babel">
 export default {
 data() {
  return {
  isShow: true, // 是否显示进度条
  val: 0, // 进度
  }
 },
 props: {
  /**
  * 每10毫秒自增幅度
  */
  step: {
  type: Number,
  default: 5,
  },
  /**
  * 初始值
  */
  initVal: {
  type: Number,
  default: 0,
  },
  /**
  * 到一定进度停止
  */
  stopVal: {
  type: Number,
  default: 80,
  },
  /**
  * 进度条继续到成功
  */
  isOk: {
  type: Boolean,
  default: false,
  },
 },
 mounted() {
  // 初始化后加载进度,加载到百分之多少由stopVal决定
  this.val = this.initVal
  let step = this.step
  let timer = setInterval(() => {
  this.val = this.val + step
  this.$el.style.width = this.val + '%'
  // 父组件数据加载完前进度条最多到stopVal的这个百分值
  if (this.val >= this.stopVal) {
   clearInterval(timer)
   return
  }
  }, 10)
 },
 watch: {
  /**
  * 监听组件props变化决定是否继续加载,一般在父组件数据加载完后改变此标志位
  */
  isOk() {
  let val = this.val
  let step = this.step
  let timer = setInterval(() => {
   val = val + step
   this.$el.style.width = val + '%'
   // 加载到百分百完成
   if (val >= 100) {
   // 关闭定时器
   clearInterval(timer)
   // 加载完成关闭进度条
   this.isShow = false
   // 加载完成的回调
   this.$emit('callback', 'load success')
   return
   }
  }, 10)
  },
 },
 }
</script>

<style lang="stylus" rel="stylesheet/stylus">
 .progress-bar {
 position fixed
 top 0
 height 6px
 width 0
 background-color #999
 }
 .fade {
 &-enter-active, &-leave-active {
  transition: all .3s
 }
 &-enter, &-leave-active {
  opacity: 0
 }
 }
</style>

以上这篇vue 页面加载进度条组件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何判断图片地址是否失效
Feb 02 Javascript
Javascript封装DOMContentLoaded事件实例
Jun 12 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
js实现简单的二级联动效果
Mar 09 Javascript
原生JS实现导航下拉菜单效果
Nov 25 Javascript
巧用weui.topTips验证数据的实例
Apr 17 Javascript
原生js实现简单的链式操作
Jul 04 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
vue拖拽排序插件vuedraggable使用方法详解
Aug 21 Javascript
vue样式穿透 ::v-deep的具体使用
Jun 04 Javascript
微信小程序canvas动态时钟
Oct 22 Javascript
JS设计模式之状态模式概念与用法分析
Feb 05 #Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
Feb 05 #Javascript
vue实现图片加载完成前的loading组件方法
Feb 05 #Javascript
JS设计模式之策略模式概念与用法分析
Feb 05 #Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 #Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
Feb 05 #Javascript
javascript实现最长公共子序列实例代码
Feb 05 #Javascript
You might like
JavaScript 私有成员分析
2009/01/13 Javascript
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
在python下读取并展示raw格式的图片实例
2019/01/24 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
python SVD压缩图像的实现代码
2019/11/05 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
次世代生活态度:Hypebeast
2018/07/05 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
25道Java面试题集合
2013/05/21 面试题
档案接收函范文
2014/01/10 职场文书
档案接收函
2014/01/13 职场文书
小学安全教育材料
2014/02/17 职场文书
责任担保书范文
2014/05/21 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
高中语文教学反思范文
2016/02/16 职场文书
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android