Vue3发送验证码,开启倒计时,并且倒计时结束前无法点击

目录

1.最终效果

2.HTML

3.JS


1.最终效果

先看效果,点击发送验证码,然后开启倒计时,倒计时结束前无法再次发送,并且该按钮处于无法选中状态

废话少说,上干货,直接看代码

2.HTML

按钮部分内容:

  • disabled: 是按钮无法选中的属性,这里将这个属性绑定到组件实例counting属性中,counting为true时,按钮处于不可用状态,为false为可用
  • @click:这个不用多说,是控制按钮触发事件的
  • v-text:绑定的按钮文本内容 
<el-button :disabled="counting" @click="startCountdown" v-text="buttonText"></el-button>

3.JS

组件实例化(也就是return里面的内容):

  • counting: false                     按钮状态默认false,可点击

  • buttonText: '发送验证码'      按钮文本内容默认

  • countdown: 90                     倒计时时长

  • timer: null                             定时器

methods:

methods函数,这个不用过多介绍

startCountdown() {
      if (this.counting) return;

      this.counting = true;
      this.buttonText = `${this.countdown} 秒后重试`;

      this.timer = setInterval(() => {
        this.countdown--;
        this.buttonText = `${this.countdown} 秒后重试`;

        if (this.countdown <= 0) {
          clearInterval(this.timer);
          this.counting = false;
          this.buttonText = '发送验证码';
          this.countdown = 90;
        }
      }, 1000);
    },

beforeDestroy:

beforeDestroy是vue.js中的生命周期钩子函数,用于执行一些清理操作,比如清除定时器、销毁非Vue插件等。这里用于清理定时器

beforeDestroy() {
    if (this.timer) {
      clearInterval(this.timer);
    }
  },

以上就是倒计时功能的实现!

如有错误、欢迎指正~ 

     

     

     

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值