打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vue3实现短信验证码倒计时
userphoto

2023.10.18 天津

关注

可以通过 Vue3 的 reactive、watchEffect 和 setInterval 方法实现验证码倒计时:

<template>  <div>    <button :disabled='countdown > 0' @click='sendVerificationCode'>发送验证码</button>    <span v-if='countdown > 0'>{{ countdown }} 秒后重新发送</span>  </div></template>
<script>import { reactive, watchEffect } from 'vue'
export default { setup() { const state = reactive({ countdown: 0, timer: null })
const sendVerificationCode = () => { state.countdown = 60 state.timer = setInterval(() => { if (state.countdown > 0) { state.countdown-- } else { clearInterval(state.timer) } }, 1000) }
watchEffect(() => { if (state.countdown === 0) { clearInterval(state.timer) } })
return { state, sendVerificationCode } }}</script>

setup 函数中,我们创建了一个名为 state 的响应式对象,其中 countdown 属性表示还剩多少秒可以重新发送验证码。

sendVerificationCode 方法用于点击后发送验证码并开始倒计时。在 sendVerificationCode 方法中,我们将 countdown 设置为 60,并创建一个定时器,每隔一秒钟就将 countdown 减 1。当 countdown 为 0 时,我们清除定时器。

watchEffect 方法用于监听 countdown 的变化,当 countdown 变为 0 时,我们清除定时器。

在模板中,我们使用 disabled 属性禁用发送验证码按钮,直到倒计时结束。当 countdown 大于 0 时,我们显示剩余秒数。

总结:

Vue 3中,实现短信验证码倒计时可以通过结合响应式数据和计时器来完成。首先,在组件的data选项中定义一个timer变量和一个countDown的倒计时时间。然后,使用v-if指令根据countDown的值控制显示验证码或倒计时按钮。接着,在mounted钩子函数中使用setInterval函数每秒更新countDown的值,并在倒计时结束后清除计时器。最后,通过点击按钮触发发送验证码请求,并在成功返回后重新设置countDown的值开始新一轮的倒计时。这样就实现了简单而高效的短信验证码倒计时功能。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
vue实现每隔几秒请求一次接口(轮询)
Vue3.0 新特性以及使用变更总结(实际工作用到的)
Vue 3.0 来了,我们该做些什么?
【Swoole系列5.1】毫秒定时器
JavaScript日期函数 - 练习、计时器、innerHTML
沙漏定时Free Countdown Timer v1.5.0.0
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服