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 相关文章推荐
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
Mar 22 Javascript
jQuery与ExtJS之选择实例分析
Aug 19 Javascript
jQuery中将函数赋值给变量的调用方法
Mar 23 Javascript
在JavaScript中使用timer示例
May 08 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
Aug 18 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
Mar 05 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
jQuery实现的form转json经典示例
Oct 10 jQuery
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
Jan 18 jQuery
基于javascript实现贪吃蛇小游戏
Nov 25 Javascript
JavaScript冒泡算法原理与实现方法深入理解
Jun 04 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
咖啡常见的种类
2021/03/03 新手入门
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
js初始化验证实例详解
2016/11/26 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
pandas取出重复数据的方法
2019/07/04 Python
利用python开发app实战的方法
2019/07/09 Python
Python实现最常见加密方式详解
2019/07/13 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
外语系毕业生找工作的求职信
2013/11/28 职场文书
竞聘书模板
2014/03/31 职场文书
活动总结格式范文
2014/04/26 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
文明班级申报材料
2014/12/24 职场文书
给老婆的道歉信
2015/01/20 职场文书
职工宿舍管理制度
2015/08/05 职场文书
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS