Vue 2实现验证码倒计时
<template>
<div>
<input type="text" v-model="inputCode" @input="handleInput">
<button :disabled="countdown > 0" @click="sendCode">
{{ countdown > 0 ? `${countdown}秒后重新获取` : '获取验证码' }}
</button>
</div>
</template>
<script>
export default {
data() {
return {
inputCode: '',
countdown: 0, // 倒计时时间
timer: null, // 计时器
};
},
methods: {
handleInput() {
// 这里可以添加验证输入的验证码是否正确的逻辑
},
sendCode() {
if (this.timer) return; // 防止重复点击
// 模拟发送验证码的逻辑
console.log('验证码已发送');
this.countdown = 60; // 设置倒计时总时间
this.timer = setInterval(() => {
if (this.countdown > 0) {
this.countdown -= 1;
} else {
clearInterval(this.timer);
this.timer = null;
}
}, 1000);
}
}
};
</script>
这个简单的Vue组件实现了验证码获取的倒计时功能。用户点击按钮后,验证码将被模拟发送,按钮将被禁用,并开始60秒倒计时。倒计时结束后,按钮将重新启用。这个例子演示了如何在Vue组件中实现倒计时逻辑,并且可以通过简单的修改来适应不同的场景。
评论已关闭