Vue中用JSON实现刷新界面不影响倒计时


Posted in Javascript onOctober 26, 2020

本文实例为大家分享了Vue中用JSON实现刷新界面不影响倒计时的具体代码,供大家参考,具体内容如下

效果展示:

Vue中用JSON实现刷新界面不影响倒计时

部分代码

<el-form-item style="overflow:hidden" v-if="env === 'dev'">
 <el-input style="width:180px; float:left" v-model="ruleForm.nucCode" size="small" placeholder="请输入短信验证码" />
 <el-button class="message_btn" @click="getNumCode">
 <span v-if="isShowNucTime" style="font-size:16px" >{{Nuc_time}} S</span>
 <span v-else-if="!isShowNucTime && NucAgain" >重新获取验证码</span>
 <span v-else style="color:#7fbfff" >获取短信验证码</span>
 </el-button>
</el-form-item>
isShowNucTime:boolean = false;
NucAgain: boolean = false;
Nuc_code_freash: boolean = false; // 判断验证码是否过期
Nuc_time: number = 60;
end_time: number = 0;

private getCode() {
 let clicktime = new Date().getTime() + 60000;
 // 本地存储
 localStorage.setItem('myEndTime', JSON.stringify(clicktime));
 this.timeDown(clicktime);
 }

 // 验证码倒计时
 timeDown(counttime: any) {
 // 判断是否正在倒计时
 if (this.isShowNucTime) return;
 this.userChange = false;
 this.isShowNucTime = true;
 this.isGetNucCode = true;
 this.end_time = Number(localStorage.getItem('myEndTime'));
 this.Nuc_time = Math.ceil((this.end_time - new Date().getTime()) / 1000);
 let interval = setInterval(() => {
 this.Nuc_time--;
 if (this.Nuc_time < 1) {
 this.Nuc_time = 60;
 this.isShowNucTime = false;
 localStorage.removeItem('myEndTime');
 if (!this.userChange) {
 this.NucAgain = true;
 }
 clearInterval(interval);
 }
 }, 1000)
 }

private created(): void {
 let myEndTime= localStorage.getItem('myEndTime');
 myEndTime && this.timeDown(myEndTime);
 }

重要的代码部分

Vue中用JSON实现刷新界面不影响倒计时

Vue中用JSON实现刷新界面不影响倒计时

实现原理

1.首次加载页面 点击开始

1).获取当前时间戳与要倒计时的时间相加获得要停止计时的时间

2).用localStorage保存当前时间戳

3).通过js的setInterval定时器进行倒计时

4).当倒计时结束后 清除localStorage中保存的结束时间

2.当第n次进入页面或刷新页面时

1).首先判断localStorage中倒计时是否结束

2).没有结束则继续倒计时

3).如果结束则显示重新发送验证码

  • 主要运用了localStorage + new Date().getTime()
  • PS:本文只是展示部分代码,一味的复制粘贴并不能运行,还是搞清楚逻辑自己实现比较靠谱!

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js关于精确计算和数值格式化以及直接引js文件
Jan 28 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 Javascript
jQuery+html5实现div弹出层并遮罩背景
Apr 15 Javascript
详解JavaScript基于面向对象之继承实例
Dec 16 Javascript
Vue导出json数据到Excel电子表格的示例
Dec 04 Javascript
从setTimeout看js函数执行过程
Dec 19 Javascript
浅谈Postman解决token传参的问题
Mar 31 Javascript
jQuery 导航自动跟随滚动的实现代码
May 30 jQuery
Vue3.0结合bootstrap创建多页面应用
May 28 Javascript
Vue实现点击导航栏当前标签后变色功能
Aug 19 Javascript
OpenLayers3加载常用控件使用方法详解
Sep 25 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 Javascript
jQuery实现简单评论区功能
Oct 26 #jQuery
vue.js封装switch开关组件的操作
Oct 26 #Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 #Javascript
vue render函数动态加载img的src路径操作
Oct 26 #Javascript
vue实现简单的登录弹出框
Oct 26 #Javascript
让你30分钟快速掌握vue3教程
Oct 26 #Javascript
在vue项目中 实现定义全局变量 全局函数操作
Oct 26 #Javascript
You might like
10条php编程小技巧
2015/07/07 PHP
PDO::quote讲解
2019/01/29 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
微信开发 微信授权详解
2016/10/21 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
Python 含参构造函数实例详解
2017/05/25 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
windows下python和pip安装教程
2018/05/25 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
SQL Server面试题
2013/04/04 面试题
电子商务应届生自我鉴定
2014/01/13 职场文书
党员评议思想汇报
2014/10/08 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
武当山导游词
2015/02/03 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang