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对象学习经验整理
Oct 12 Javascript
js操作label给label赋值及取label的值示例
Nov 07 Javascript
jQuery简单实现banner图片切换
Jan 02 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 jQuery
微信小程序promsie.all和promise顺序执行
Oct 27 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
Dec 01 Javascript
react 国际化的实现代码示例
Sep 14 Javascript
JS算法题之查找数字在数组中的索引位置
May 15 Javascript
生产制造追溯系统之再说条码打印
Jun 03 Javascript
webpack+vue.js构建前端工程化的详细教程
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时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
jQuery 表格插件整理
2010/04/27 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
js变量提升深入理解
2016/09/16 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python lxml模块安装教程
2015/06/02 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
python实现四人制扑克牌游戏
2020/04/22 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
应届大专毕业生个人自荐信
2013/09/22 职场文书
市三好学生主要事迹
2014/01/28 职场文书
家长会学生演讲稿
2014/04/26 职场文书
论文指导教师评语
2014/04/28 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
golang操作rocketmq的示例代码
2022/04/06 Golang
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers