我是靠谱客的博主 醉熏八宝粥,这篇文章主要介绍vue倒计时刷新页面不会从头开始的解决方法,现在分享给大家,希望可以做个参考。

开启倒计时,直接保存到vuex中,且存储到本地持久化

复制代码
1
2
3
// state.js const runTime = localStorage.getItem('time'); paymentRunTime:runTime
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
// 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) }

知识点扩展:

倒计时实例代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
<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>
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<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倒计时刷新页面不会从头开始的资料请关注靠谱客其它相关文章!

最后

以上就是醉熏八宝粥最近收集整理的关于vue倒计时刷新页面不会从头开始的解决方法的全部内容,更多相关vue倒计时刷新页面不会从头开始内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(306)

评论列表共有 0 条评论

立即
投稿
返回
顶部