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

实现效果:实现按钮倒计时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)
    }
相关推荐
光泽雨4 分钟前
c#对object sender ,EventArgs e 的解释
开发语言·c#
绿豆人6 分钟前
go语言的Reflect包
java·开发语言·数据结构
Eiceblue7 分钟前
C# 删除 PDF 页面:单页 / 多页批量删除技巧
前端·pdf·c#
悟空瞎说7 分钟前
从isMounted到跨页面状态:高级前端如何优雅解决订单场景的“幽灵陷阱”(附React/Vue完整代码)
前端·javascript
C_fashionCat10 分钟前
【2026面试题】前端实际场景去考察原理
前端·vue.js·面试
落魄江湖行10 分钟前
进阶篇三 Nuxt4 Nitro 引擎:Nuxt 的服务端核心
前端·vue.js·typescript·nuxt4
sheeta199812 分钟前
TypeScript references 配置与 emit 要求详解
javascript·ubuntu·typescript
一壶纱13 分钟前
Element Plus 主题构建方案
前端·vue.js
程序员马晓博13 分钟前
我的大脑不下班:一个前端工程师的工作反刍自救指南
前端
吴声子夜歌14 分钟前
Vue3——表单元素绑定
前端·vue·es6