vue实现简单loading进度条


Posted in Javascript onJune 06, 2018

刚学习vue不久,今天试着用vue做了一个简单的loading进度条,对于vue的生命周期和钩子函数又有了新的理解,下面分享给大家,绝对入门级。

一、进度条原理

这个就很简单了,也是我们经常可以用到的,这里只做一个最简单的,页面刷新自动加载进度条。主要是让进度条的width不断增加至100%就可以啦~好了,进入正题。

二、jquery实现

<!DOCTYPE html> 
<html lang="en"> 
 
<head> 
  <meta charset="UTF-8"> 
  <meta name="viewport" content="width=device-width, initial-scale=1"> 
  <link rel="stylesheet" href="https://cdn.bootcss.com/foundation/5.5.3/css/foundation.min.css" rel="external nofollow" rel="external nofollow" > 
  <link rel="stylesheet" href="http://static.runoob.com/assets/foundation-icons/foundation-icons.css" rel="external nofollow" rel="external nofollow" > 
  <title>jq进度条</title> 
 
</head> 
 
<body> 
  <div id="app"> 
    <div class="progress round alert"> 
      <span class="meter" style="width:0%">0%</span> 
    </div> 
  </div> 
 
 
  <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script> 
  <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js "></script> 
  <script src="https://cdn.bootcss.com/foundation/5.5.3/js/foundation.min.js "></script> 
  <script> 
    $(function () { 
      var html = $('.meter'); 
      var htmlW = $('.meter').val(); 
      var styleW = parseInt($('.meter').css('width')); 
      var clearInt = setInterval(function () { 
        styleW++; 
        var styleWW = styleW + '%'; 
        html.css('width', styleWW); 
        html.html(styleWW); 
        if (styleW == 100) { 
          clearInterval(clearInt); 
        } 
      }, 20) 
    }) 
  </script> 
</body> 
 
</html>

三、vue实现

<!DOCTYPE html> 
<html lang="en"> 
 
<head> 
  <meta charset="UTF-8"> 
  <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
  <meta http-equiv="X-UA-Compatible" content="ie=edge"> 
  <title>vue进度条</title> 
  <link rel="stylesheet" href="https://cdn.bootcss.com/foundation/5.5.3/css/foundation.min.css" rel="external nofollow" rel="external nofollow" > 
  <link rel="stylesheet" href="http://static.runoob.com/assets/foundation-icons/foundation-icons.css" rel="external nofollow" rel="external nofollow" > 
  <style> 
    .bar{ 
      color: #fff; 
      text-align: center; 
    } 
  </style> 
 
</head> 
 
<body> 
  <div id="app"> 
    <div class="progress alert round"> 
      <span class="meter bar" :style="{width:proBar+'%',}" >{{proBar}}</span> 
    </div> 
  </div> 
  <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script> 
  <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js "></script> 
  <script src="https://cdn.bootcss.com/foundation/5.5.3/js/foundation.min.js "></script> 
  <script> 
    var app = new Vue({ 
      el: '#app', 
      data: { 
        proBar: 0, 
      }, 
      created(){ 
        this.change(); 
      }, 
      methods: { 
        change: function() { 
            var clearInt = setInterval(function() { 
              app.proBar++; 
              console.log(app.prpBar); 
              if (app.proBar == 100) { 
                clearInterval(clearInt); 
              } 
            }, 20) 
 
        } 
      } 
    }) 
  </script> 
 
</body> 
 
</html>

对比两段代码显然vue要方便许多,因为是双向绑定,不用来回操作dom,就很简单省心啦。

注意问题:刚开始没有实现loading效果,主要是因为用了mounted钩子函数来调用change方法(还是对生命周期理解的不到位)。实现loading效果我们需要在页面加载时自动调用change方法,所以我们应该在数据全部初始化前就执行这一操作。mounted时期已经全部完成初始化,所以便不会成功。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
对js关键字命名的疑问介绍
Apr 25 Javascript
javascript使用call调用微信API
Dec 15 Javascript
JavaScript中的console.trace()函数介绍
Dec 29 Javascript
jQuery scrollFix滚动定位插件
Apr 01 Javascript
30分钟快速掌握Bootstrap框架
May 24 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
JavaScript调试之console.log调试的一个小技巧分享
Aug 07 Javascript
微信小程序中使用wxss加载图片并实现动画效果
Aug 13 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
vue-router的钩子函数用法实例分析
Oct 26 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
Nov 09 Javascript
security.js实现的RSA加密功能示例
Jun 06 #Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
Jun 06 #Javascript
基于vue实现可搜索下拉框定制组件
Mar 26 #Javascript
深入浅析Vue中的 computed 和 watch
Jun 06 #Javascript
详解创建自定义的Angular Schematics
Jun 06 #Javascript
vue组件实现进度条效果
Jun 06 #Javascript
Express的HTTP重定向到HTTPS的方法
Jun 06 #Javascript
You might like
php下intval()和(int)转换使用与区别
2008/07/18 PHP
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
PHP生成随机密码类分享
2014/06/25 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
跟老齐学Python之永远强大的函数
2014/09/14 Python
Python定时任务sched模块用法示例
2018/07/16 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
tensorflow 变长序列存储实例
2020/01/20 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
linux面试题参考答案(1)
2016/01/22 面试题
abstract class和interface有什么区别
2013/08/04 面试题
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
集体生日活动方案
2014/08/18 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript
详解Oracle块修改跟踪功能
2021/11/07 Oracle
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
把77A收信机改造成收音机
2022/04/05 无线电
详解Python中的for循环
2022/04/30 Python
python和anaconda的区别
2022/05/06 Python