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 相关文章推荐
jQuery与其它库冲突的解决方法
Jun 25 Javascript
JQuery each()嵌套使用小结
Apr 18 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 Javascript
JQuery为元素添加样式的实现方法
Jul 20 Javascript
Vue 2.X的状态管理vuex记录详解
Mar 23 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
Apr 03 jQuery
Vue中计算属性computed的示例解读
Jul 26 Javascript
原生JS实现多个小球碰撞反弹效果示例
Jan 31 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
Nov 08 Javascript
微信小程序和H5页面间相互跳转代码实例
Sep 19 Javascript
vue中的使用token的方法示例
Mar 10 Javascript
关于React Native使用axios进行网络请求的方法
Aug 02 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中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
Script的加载方法小结
2011/01/12 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
Jquery Uploadify上传带进度条的简单实例
2014/02/12 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
python类参数self使用示例
2014/02/17 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python输入错误后删除的方法
2019/10/12 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
Python自动登录QQ的实现示例
2020/08/28 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
医院学雷锋活动策划方案
2014/02/15 职场文书
户外活动策划方案
2014/03/12 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
招标保密承诺书
2015/01/20 职场文书
检讨书范文500字
2015/01/28 职场文书