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转换字符串为dom对象(字符串动态创建dom)
May 10 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
Dec 30 Javascript
Jquery getJSON方法详细分析
Dec 26 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 Javascript
jQuery满意度星级评价插件特效代码分享
Aug 19 Javascript
Javascript闭包实例详解
Nov 29 Javascript
js实现html table 行,列锁定的简单实例
Oct 13 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
Jun 22 Javascript
Vue源码解析之Template转化为AST的实现方法
Dec 14 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 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
基于文本的留言簿
2006/10/09 PHP
基于PHP读取csv文件内容的详解
2013/06/18 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
读jQuery之十 事件模块概述
2011/06/27 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
Python实现简单过滤文本段的方法
2017/05/24 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
Linux下python3.7.0安装教程
2018/07/30 Python
深入理解Python异常处理的哲学
2019/02/01 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
python redis存入字典序列化存储教程
2020/07/16 Python
大学生两会精神学习心得体会
2014/03/10 职场文书
安全教育第一课观后感
2015/06/17 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python