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 相关文章推荐
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
javascript alert乱码的解决方法
Nov 05 Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
Dec 11 Javascript
jQuery模拟下拉框选择对应菜单的内容
Mar 07 Javascript
详解Vue如何支持JSX语法
Nov 10 Javascript
vue2.0 computed 计算list循环后累加值的实例
Mar 07 Javascript
Vuex的actions属性的具体使用
Apr 14 Javascript
Node.js API详解之 module模块用法实例分析
May 13 Javascript
Vue组件简易模拟实现购物车
Dec 21 Vue.js
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函数 serialize()和unserialize()
2012/02/04 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
基于jquery自定义图片热区效果
2012/07/21 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
python统计文本文件内单词数量的方法
2015/05/30 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
python实现智能语音天气预报
2019/12/02 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
安全生产宣传标语
2014/06/06 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
优秀班组事迹材料
2014/12/24 职场文书
身份证丢失证明
2015/06/19 职场文书
公司酒会主持词
2015/07/02 职场文书
入党转正申请书范文
2019/05/20 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
使用Python获取字典键对应值的方法
2022/04/26 Python