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 相关文章推荐
jquery的live使用注意事项
Feb 18 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
May 15 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
Aug 02 Javascript
CSS3 3D 技术手把手教你玩转
Sep 02 Javascript
基于JS实现类似支付宝支付密码输入框
Sep 02 Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
Mar 14 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
Jul 24 Javascript
JavaScript实现滑动导航栏效果
Aug 30 Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 Javascript
JavaScript实现外溢动态爱心的效果的示例代码
Mar 21 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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
session 的生命周期是多长
2006/10/09 PHP
php intval的测试代码发现问题
2008/07/27 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
个人工作表现评语
2014/04/30 职场文书
慈善晚会策划方案
2014/05/14 职场文书
住房抵押登记委托书
2014/09/27 职场文书
委托公证书样本
2015/01/23 职场文书
暑假安全保证书
2015/02/28 职场文书
师德师风培训感言
2015/08/03 职场文书
大学副班长竞选稿
2015/11/21 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
幼儿园语言教学反思
2016/02/23 职场文书