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 相关文章推荐
JavaScript执行顺序详细介绍
Dec 04 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
Mar 19 Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
Aug 10 Javascript
快速使用Bootstrap搭建传送带
May 06 Javascript
Vue结合原生js实现自定义组件自动生成示例
Jan 21 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
Feb 12 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
jQuery实现的form转json经典示例
Oct 10 jQuery
js实现鼠标单击Tab表单切换效果
May 16 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
Nuxt.js实战和配置详解
Aug 05 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
Oracle 常见问题解答
2006/10/09 PHP
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
PHP中常用的转义函数
2014/02/28 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
python根据日期返回星期几的方法
2015/07/06 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
python的socket编程入门
2018/01/29 Python
Python交互式图形编程的实现
2019/07/25 Python
Python如何调用外部系统命令
2019/08/07 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
留学自荐信的技巧
2013/10/17 职场文书
师范应届生求职信
2013/11/15 职场文书
高中美术教学反思
2014/01/19 职场文书
家长给小学生的评语
2014/01/30 职场文书
2014学年自我鉴定
2014/02/23 职场文书
个人委托书格式
2014/04/04 职场文书
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技