vue实现发送短信倒计时和重发短信的功能

js实现发送短信倒计时功能

HTML代码部分

javascript 复制代码
        <el-button @click="queryBtn()" type="primary">发送短信({{countDown}})</el-button>
        <el-button @click="resetBtn()" type="danger" :disabled="resetBtndisab">重发</el-button>

JS代码部分

javascript 复制代码
export default {
    data(){
        return {
            countDown:60, // 默认时间60秒
            countDownTimeout:null,  // 倒计时计数器
            resetBtndisab:true, //重发按钮初始值为不可用
        }
    },
    methods:{
            // 查询按钮
            queryBtn(){
                 this.doCountDown()
            },
            // 重置按钮
            resetBtn(){
                 this.$message({
                        message: '短信验证码已发送,请注意查收!',
                        type: 'success'
                 });
                 this.resetCountDown();
                 this.resetBtndisab=true
            },
            // 倒计时开始
            doCountDown(){
                this.countDownTimeout=setTimeout(()=>{
                    this.countDown--;
                    if(this.countDown<=0){
                            this.resetBtndisab=false
                    }else{
                        this.doCountDown(this.countDown)
                    }
                },1000)
		    },
            // 重置倒计时
            resetCountDown(){
                clearTimeout(this.countDownTimeout);
                this.countDown=60;
            }

    }
}

实际展示效果



相关推荐
前端那点事1 分钟前
Vuex刷新数据丢失?4种持久化方案全覆盖,从零到项目落地(实战完整版)
前端·vue.js
Cerrda1 分钟前
性能提升 satisfying!一个 Vue3 指令干掉页面上 200 个无用 Tooltip 实例
前端·设计
漫游的渔夫2 分钟前
前端开发者做 AI Agent:别只渲染答案,用 7 个状态接住确认、错误和 trace
前端·人工智能·typescript
clove2 分钟前
从 LLM 到 Agent:一篇文章课带你彻底搞懂 AI 智能体的核心逻辑
前端
前端那点事4 分钟前
彻底吃透JS定时器!setTimeout/setInterval区别、坑点与最优优化方案(Vue实战)
前端·vue.js
Ruihong5 分钟前
🔥Vue 转 React 实战:VuReact 实时监听开发指南
vue.js·后端·react.js
费曼学习法6 分钟前
Vue 3 编译优化揭秘:静态提升与 PatchFlags 的极致性能
javascript·vue.js
ZC跨境爬虫8 分钟前
跟着 MDN 学 HTML day_27:(深入理解 HTML 属性反射机制)
前端·javascript·ui·html·音视频·媒体
ayqy贾杰14 分钟前
过去三年我做对了一件事
前端·面试·ai编程
小矮马20 分钟前
qiankun 微前端集成子项目
javascript