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 相关文章推荐
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
js网页实时倒计时精确到秒级
Feb 10 Javascript
基于javascript实现九九乘法表
Mar 27 Javascript
JS定义类的六种方式详解
May 12 Javascript
Javascript 实现全屏滚动实例代码
Dec 31 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
Aug 18 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
微信小程序实现页面下拉刷新和上拉加载功能详解
Dec 03 Javascript
浅谈Angular7 项目开发总结
Dec 19 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
May 14 Javascript
vue通过过滤器实现数据格式化
Jul 20 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 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
javascript 隔行换色函数代码
2010/10/24 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
python3 反射的四种基本方法解析
2019/08/26 Python
python中栈的原理及实现方法示例
2019/11/27 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
在python中修改.properties文件的操作
2020/04/08 Python
什么是Python变量作用域
2020/06/03 Python
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
仓库管理专业个人的自我评价
2013/12/30 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
汽车广告策划方案
2014/05/31 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
银行资信证明
2015/06/17 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python