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 XML实现两级级联下拉列表
Nov 10 Javascript
jQuery validate 中文API 附validate.js中文api手册
Jul 31 Javascript
javascript正则表达式中的replace方法详解
Apr 20 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
JS百度地图搜索悬浮窗功能
Jan 12 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
Apr 13 Javascript
vue父组件通过props如何向子组件传递方法详解
Aug 16 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 jQuery
用Angular实现一个扫雷的游戏示例
May 15 Javascript
深入理解 ES6中的 Reflect用法
Jul 18 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 地址栏信息的获取代码
2009/01/07 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
python对excel文档去重及求和的实例
2018/04/18 Python
python 字符串和整数的转换方法
2018/06/25 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
python 日志 logging模块详细解析
2020/03/31 Python
通过自学python能找到工作吗
2020/06/21 Python
2013年高中生自我评价
2013/10/23 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
MySQL 聚合函数排序
2021/07/16 MySQL
利用 JavaScript 构建命令行应用
2021/11/17 Javascript