前端实现手机短信验证码倒计时效果

实现效果:实现按钮倒计时10s后可重新发送验证码

一、思路

1、禁用按钮,调用后端接口,获取验证码

2、setTimeOut(() => {},1000)延迟1s执行,time - 1,返回文案,9s

3、迭代处理,调用自身函数,time - 1,返回文案,8s,实现9s 8s 7s 这样倒计时的效果。

4、不能无限迭代减1,判断时间为最后一秒时,解除按钮禁用状态

二、代码

javascript 复制代码
    sendVerifyCode() {
      this.verifyCodeDisable = true;
      // 调用后端接口获取验证码
      this.getVerifyCode()
      // 初始化倒计时时间
      let time = 10;
      this.setTime(time)
    },
    setTime(time) {
      setTimeout(() => {
        if (time > 1) {
          time--;
          // 返回文案
          this.tips = time + 's';
          // 迭代调用
          this.setTime(time)
        } else {
          // 倒计时最后一秒,解除禁用状态,可重新发送验证码
          this.verifyCodeDisable = false;
          this.tips = '获取验证码';
        }
      }, 1000)
    }
相关推荐
tryxr18 分钟前
Java 多线程标志位的使用
java·开发语言·volatile·内存可见性·标志位
APItesterCris30 分钟前
高并发场景下的挑战:1688 商品 API 的流量控制、缓存策略与异步处理方案
大数据·开发语言·数据库·缓存
yyy(十一月限定版)31 分钟前
c语言——栈和队列
java·开发语言·数据结构
feeday33 分钟前
Python 删除重复图片 优化版
开发语言·python
running up34 分钟前
Vite 全面解析:特性、对比、实践及最新演进
javascript·typescript
.格子衫.37 分钟前
JS原型链总结
开发语言·javascript·原型模式
麦麦鸡腿堡40 分钟前
Java_MySQL介绍
java·开发语言·mysql
于是我说40 分钟前
一份Python 面试常见问题清单 覆盖从初级到高级
开发语言·python·面试
shoubepatien40 分钟前
JavaWeb_Web基础
java·开发语言·前端·数据库·intellij-idea
WordPress学习笔记1 小时前
wordpress外贸主题Google地图添加(替换)方案
前端·wordpress·wordpress地图