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 api 速查表分享
Jan 12 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
May 03 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
May 06 Javascript
学习Bootstrap组件之下拉菜单
Jul 28 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
Dec 02 Javascript
如何消除inline-block属性带来的标签间间隙
Mar 31 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
vue中的模态对话框组件实现过程
May 01 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
Dec 13 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
Nov 27 Javascript
原生js实现日期选择插件
May 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
html中select语句读取mysql表中内容
2006/10/09 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
详解redux异步操作实践
2018/08/15 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
Python实现批量下载文件
2015/05/17 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
对python中dict和json的区别详解
2018/12/18 Python
python3实现点餐系统
2019/01/24 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
python绘制多个子图的实例
2019/07/07 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
国家奖学金获奖感言
2014/08/16 职场文书
教师节大会主持词
2015/07/06 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
2016大学军训心得体会
2016/01/11 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
MySQL学习之基础操作总结
2022/03/19 MySQL