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

实现效果:实现按钮倒计时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)
    }
相关推荐
小兵张健9 小时前
价值1000的 AI 工作流:Codex 通用前端协作模式
前端·aigc·ai编程
sunny_10 小时前
面试踩大坑!同一段 Node.js 代码,CJS 和 ESM 的执行顺序居然是反的?!99% 的人都答错了
前端·面试·node.js
拉不动的猪10 小时前
移动端调试工具VConsole初始化时的加载阻塞问题
前端·javascript·微信小程序
ayqy贾杰12 小时前
Agent First Engineering
前端·vue.js·面试
IT_陈寒12 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
iceiceiceice12 小时前
iOS PDF阅读器段评实现:如何从 PDFSelection 精准还原一个自然段
前端·人工智能·ios
大金乄12 小时前
封装一个vue2的elementUI 表格组件(包含表格编辑以及多级表头)
前端·javascript
葡萄城技术团队13 小时前
【性能优化篇】面对万行数据也不卡顿?揭秘协同服务器的“片段机制 (Fragments)”
前端
程序员阿峰13 小时前
2026前端必备:TensorFlow.js,浏览器里的AI引擎,不写Python也能玩转智能
前端
Jans13 小时前
Shipfe — Rust 写的前端静态部署工具:一条命令上线 + 零停机 + 可回滚 + 自动清理
前端