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二维数组采用定义数组的数组来实现
Dec 09 Javascript
javascript折半查找详解
Jan 26 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 Javascript
javascript显示系统当前时间代码
Dec 29 Javascript
jquery广告无缝轮播实例
Jan 05 Javascript
Angularjs分页查询的实现
Feb 24 Javascript
ES6学习教程之对象的扩展详解
May 02 Javascript
详解angular 中的自定义指令之详解API
Jun 20 Javascript
Bootstrap Table从零开始
Jun 30 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
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求正负数数组中连续元素最大值示例
2014/04/11 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
PHP生成树的方法
2015/07/28 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
简约控的天堂:The Undone
2016/12/21 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
一个C/C++编程面试题
2013/11/10 面试题
小学开学典礼主持词
2014/03/19 职场文书
公司新年寄语
2014/04/04 职场文书
公司活动总结怎么写
2014/06/25 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
英雄儿女观后感
2015/06/09 职场文书