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 相关文章推荐
asp.net HttpHandler实现图片防盗链
Nov 09 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
jQuery点缩略图弹出层显示大图片
Feb 13 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
Nov 25 Javascript
Node.js connect ECONNREFUSED错误解决办法
Sep 15 Javascript
Vue.js使用v-show和v-if的注意事项
Dec 13 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 Javascript
使用vue自定义指令开发表单验证插件validate.js
May 23 Javascript
20个必会的JavaScript面试题(小结)
Jul 02 Javascript
Vue父子之间值传递的实例教程
Jul 02 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使用多个进程同时控制文件读写示例
2014/02/28 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python松散正则表达式用法分析
2016/04/29 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
校园十大歌手策划书
2014/02/01 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
体现团队精神的口号
2014/06/06 职场文书
运动会闭幕词
2015/01/28 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
css3带你实现3D转换效果
2022/02/24 HTML / CSS
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android