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的一些看法
May 27 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
Nov 11 Javascript
js window.onload 加载多个函数和追加函数详解
Jan 08 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
Jun 12 Javascript
JS实现数字格式千分位相互转换方法
Aug 01 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
vue双向数据绑定原理探究(附demo)
Jan 17 Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 Javascript
基于JavaScript实现轮播图效果
Jan 02 Javascript
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 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
杏林同学录(八)
2006/10/09 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
一个简单的javascript类定义例子
2009/09/12 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
Python中的生成器和yield详细介绍
2015/01/09 Python
python实现下载文件的三种方法
2017/02/09 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
详解爬虫被封的问题
2019/04/23 Python
python实现人像动漫化的示例代码
2020/05/17 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
pandas 数据类型转换的实现
2020/12/29 Python
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
个人找工作的自我评价
2013/10/17 职场文书
出纳员岗位责任制
2014/02/11 职场文书
幼儿教师研修感言
2014/02/12 职场文书
优秀教师演讲稿
2014/05/06 职场文书
简易离婚协议书范本
2014/10/24 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
好好学习保证书
2015/02/26 职场文书
如何写辞职书
2015/02/26 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
《司马光》教学反思
2016/02/22 职场文书