vue倒计时刷新页面不会从头开始的解决方法


Posted in Javascript onMarch 03, 2020

开启倒计时,直接保存到vuex中,且存储到本地持久化

// state.js
const runTime = localStorage.getItem('time');
paymentRunTime:runTime
// mutations.js

TimeReduction(state) {
  this.timerId = setInterval(() => {
   if (state.paymentRunTime === 0) {
     state.paymentRunTime = 60;
     return clearInterval(this.timerId)
   }
    state.paymentRunTime -= 1;
   localStorage.setItem('time',state.paymentRunTime)
  },1000);
 },

在需要用到的页面钩子函数调用方法, created(){ this.$store.commit(TimeReduction) }

知识点扩展:

倒计时实例代码:

<template>
 <div class="captcha-row">
 <input class="captcha-input" placeholder="输入验证码" auto-focus />
 <div v-if="showtime===null" class="captcha-button" @click="send">
  获取验证码
 </div>
 <div v-else class="captcha-button">
  {{showtime}}
 </div>
 </div>
</template>
<script>
export default {
 data() {
 return {
  // 计时器,注意需要进行销毁
  timeCounter: null,
  // null 则显示按钮 秒数则显示读秒
  showtime: null
 }
 },
 methods: {
 // 倒计时显示处理
 countDownText(s) {
  this.showtime = `${s}s后重新获取`
 },
 // 倒计时 60秒 不需要很精准
 countDown(times) {
  const self = this;
  // 时间间隔 1秒
  const interval = 1000;
  let count = 0;
  self.timeCounter = setTimeout(countDownStart, interval);
  function countDownStart() {
  if (self.timeCounter == null) {
   return false;
  }
  count++
  self.countDownText(times - count + 1);
  if (count > times) {
   clearTimeout(self.timeCounter)
   self.showtime = null;
  } else {
   self.timeCounter = setTimeout(countDownStart, interval)
  }
  }
 },
 send() {
  this.countDown(60);
 }
 },
}
</script>

以上就是vue倒计时刷新页面不会从头开始的解决方法的详细内容,更多关于vue倒计时刷新页面不会从头开始的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
jquery 入门教程 [翻译] 推荐
Aug 17 Javascript
JQuery for与each性能比较分析
May 14 Javascript
JavaScript动态改变表格单元格内容的方法
Mar 30 Javascript
JavaScript中的Math.sin()方法使用详解
Jun 15 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
vue构建单页面应用实战
Apr 10 Javascript
Node.JS利用PhantomJs抓取网页入门教程
May 19 Javascript
Bootstrap Table 删除和批量删除
Sep 22 Javascript
js实现二级菜单点击显示当前内容效果
Apr 28 Javascript
JavaScript+H5实现微信摇一摇功能
May 23 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 Javascript
vue总线机制(bus)知识点详解
May 10 Javascript
vuex(vue状态管理)的特殊应用案例分享
Mar 03 #Javascript
使用vue打包进行云服务器上传的问题
Mar 02 #Javascript
微信小程序scroll-view的滚动条设置实现
Mar 02 #Javascript
JS如何生成随机验证码
Mar 02 #Javascript
js实现烟花特效
Mar 02 #Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 #Javascript
JS造成内存泄漏的几种情况实例分析
Mar 02 #Javascript
You might like
php使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
php实现的简单日志写入函数
2015/03/31 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
[03:02]生活中的Dendi之野外度假篇
2016/08/09 DOTA
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
八年级美术教学反思
2014/02/02 职场文书
庆祝国庆节标语
2014/10/09 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
MySQL数据库 任意ip连接方法
2022/05/20 MySQL