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有关元素内容操作小结
Dec 20 Javascript
利用谷歌地图API获取点与点的距离的js代码
Oct 11 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
Websocket协议详解及简单实例代码
Dec 12 Javascript
jQuery Ajax全解析
Feb 13 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
详解JavaScript对象的深浅复制
Mar 30 Javascript
浅谈FastClick 填坑及源码解析
Mar 02 Javascript
微信小程序使用swiper组件实现层叠轮播图
Nov 04 Javascript
详解Vue 项目中的几个实用组件(ts)
Oct 29 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日期处理函数 整型日期格式
2011/01/12 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
JavaScript Date对象使用总结
2009/05/14 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
javascript计时器详解
2015/02/28 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
JavaScript实现更换背景图片
2019/10/18 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
Python解决鸡兔同笼问题的方法
2014/12/20 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
python之拟合的实现
2019/07/19 Python
python 求定积分和不定积分示例
2019/11/20 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
市场专员岗位职责
2014/02/14 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
Oracle锁表解决方法的详细记录
2022/06/05 Oracle