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实现控制内容的向上向下滚动效果
Jun 26 Javascript
让网页根据不同IE版本显示不同的内容
Feb 08 Javascript
js数字转换为float,取N位小数
Feb 08 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
jQuery实现带水平滑杆的焦点图动画插件
Mar 08 Javascript
js自定义QQ菜单效果
Jan 10 Javascript
js仿微信抢红包功能
Sep 25 Javascript
Vue Socket.io源码解读
Feb 07 Javascript
微信小程序实现图片上传功能
May 28 Javascript
vue数组对象排序的实现代码
Jun 20 Javascript
微信小程序实现点击效果
Jun 21 Javascript
分享Angular http interceptors 拦截器使用(推荐)
Nov 10 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数组无限分级数据的层级化处理代码
2012/12/29 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
jQuery 树形结构的选择器
2010/02/15 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
vue-router路由模式详解(小结)
2019/08/26 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
2020/02/15 Javascript
Python+MongoDB自增键值的简单实现
2016/11/04 Python
Python如何为图片添加水印
2016/11/25 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Numpy中的mask的使用
2018/07/21 Python
python 文件查找及内容匹配方法
2018/10/25 Python
pandas重新生成索引的方法
2018/11/06 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
python实现tail -f 功能
2020/01/17 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
Python socket服务常用操作代码实例
2020/06/22 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
Django日志及中间件模块应用案例
2020/09/10 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
材料化学专业求职信
2014/07/15 职场文书
工作收入证明模板
2014/10/10 职场文书
滴水洞导游词
2015/02/10 职场文书
python 逐步回归算法
2021/04/06 Python
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript