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 相关文章推荐
使用IE的地址栏来辅助调试Web页脚本
Mar 08 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
Dec 13 Javascript
Ajax搜索结果页面下方的分页按钮的生成
Apr 05 Javascript
AngularJS实现Model缓存的方式
Feb 03 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
Aug 17 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 Javascript
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
微信小程序实现富文本图片宽度自适应的方法
Jan 20 Javascript
vue cli4下环境变量和模式示例详解
Apr 09 Javascript
基于js实现的图片拖拽排序源码实例
Nov 04 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
PHP将XML转数组过程详解
2013/11/13 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
不错的一个日期输入 动态
2006/11/06 Javascript
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
Angular实现响应式表单
2017/08/04 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
python查找第k小元素代码分享
2013/12/18 Python
python入门教程之识别验证码
2017/03/04 Python
python中map的基本用法示例
2018/09/10 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
python文件读取失败怎么处理
2020/06/23 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
中层干部竞争上岗演讲稿
2014/01/13 职场文书
大学生军训广播稿
2014/01/24 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
销售活动策划方案
2014/08/26 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
周末问候语大全
2015/11/10 职场文书
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers