本文實例為大家分享了vue獲取驗證碼倒計時組件,供大家參考,具體內容如下
之前寫過一個計時函數,有計算誤差,但是驗證碼的60秒倒計時可以忽略這一點點誤差。直接上代碼。

<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><style lang="less" scoped>.captcha-row { display: flex; .captcha-button {  background: #048fff;  color: white;  display: flex;  justify-content: center;  align-items: center;  padding: 4rpx 8rpx;  width: 320rpx;  border-radius: 4rpx; }}</style>以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答