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 相关文章推荐
FCK调用方法..
Dec 21 Javascript
jquery选择器之层级过滤选择器详解
Jan 27 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
JS获取图片lowsrc属性的方法
Apr 01 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
vue调用高德地图实例代码
Apr 28 Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
微信小程序项目实践之主页tab选项实现
Jul 18 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
Vue extend的基本用法(实例详解)
Dec 09 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
10条php编程小技巧
2015/07/07 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
2013/06/24 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
js tab栏切换代码实例解析
2019/09/03 Javascript
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
Python判断Abundant Number的方法
2015/06/15 Python
python开发之函数定义实例分析
2015/11/12 Python
快速了解python leveldb
2018/01/18 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
优秀员工自荐书范文
2013/12/08 职场文书
公司人力资源的自我评价
2014/01/02 职场文书
村委会换届选举方案
2014/05/03 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
2016读书月活动心得体会
2016/01/14 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
MySQL创建管理KEY分区
2022/04/13 MySQL