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 相关文章推荐
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
自写的jQuery异步加载数据添加事件
May 15 Javascript
采用call方式实现js继承
May 20 Javascript
jQuery元素的隐藏与显示实例
Jan 20 Javascript
js实现类似新浪微博首页内容渐显效果的方法
Apr 10 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 Javascript
Javascript数组循环遍历之forEach详解
Nov 07 Javascript
javascript基础练习之翻转字符串与回文
Feb 20 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
Sep 26 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
Jun 01 Javascript
js瀑布流布局的实现
Jun 28 Javascript
vue.js 使用原生js实现轮播图
Apr 26 Vue.js
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
用PHP实现小型站点广告管理
2006/10/09 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
haskell实现多线程服务器实例代码
2013/11/26 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
意大利在线高尔夫商店:Online Golf
2021/03/09 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
士力架广告词
2014/03/20 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
2015年招聘工作总结
2014/12/12 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
身份证丢失证明
2015/06/19 职场文书
个人道歉信大全
2019/04/11 职场文书
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python
flex弹性布局详解
2022/03/20 HTML / CSS