微信小程序 点击获取验证码(节流)讲解在代码中

2023-11-15

多次点击一段时间内 只执行一次---------节流

一段时间点击多次 只执行最后一次--------防抖

 

页面.wxml

<text class="getCode" bindtap="getCode">{{getCode=="1"?'获取验证码': getCode==2?"重新获取":changeCode+'s' }}</text>

样式,wxss

.loginInfo .userInfo .inputBox .getCode {
    width: 170rpx;
    height: 70rpx;
    background-color: #e2e2e2;
    line-height: 70rpx;
    text-align: center;
    font-size: 28rpx;
    color: #4566ff;
    border-radius: 40rpx;
}

逻辑.js

Page({
    data: {
        getCode: "1",  // 控制文字显示隐藏
        changeCode: 5, // 倒计时时间
        changeCodeFlag: false, // 节流值
    },
    getCode() {
        if (this.data.changeCodeFlag) return // 默认值false 第一次不return
        this.setData({ changeCodeFlag: true, getCode: "3" }) // 改为true 计时不结束一直return
        // 定义定时器 方便清除
        let timer = setInterval(() => {
            // 倒计时数字 每秒自减1 
            this.data.changeCode--;
            // 每次自减一 再赋值给它本身
            this.setData({
                changeCode: this.data.changeCode,
            })
            // 判断 显示为0s时 结束定时器 将'重新获取'显示出来 将节流值改为false 将倒计时复原
            if (this.data.changeCode === -1) {
                clearInterval(timer)
                this.setData({ getCode: "2", changeCode: 5, changeCodeFlag: false })
            }
        }, 1000);
    },
})

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序 点击获取验证码(节流)讲解在代码中 的相关文章

  • 2023 年 IDEA Maven 源修改为国内阿里云镜像的正确方式,亲测可用

    前言 由于众所周知的原因 maven的库在中国大陆非常慢 我在百度上搜到的大部分文章都是直接在 m2 settings xml 加入以下内容
  • Linux_网络项目_WEB服务器 设计CGI机制,与CGI处理数据

    文章紧跟之前web服务器返回静态网页 文章目录 CGI设计思路 设计CGI代码 CGI设计思路 CGI原理如下图 其中CGI程序可以使用任何后端语言进行编写 而服务器是可执行程序 而CGI程序也是可执行程序 可以创建子进程使用进程替换来实现
  • MySQL C API

    Mysql API数据结构 Mysql API中用到了很多结构体等数据类型 下面就简单说说常用的几个数据结构的含义 至于它们的定义鸡啄米就不贴了 大家可以到Mysql提供的mysql h头文件中查看 MYSQL 连接数据库前 必须先创建MY
  • 【小沐学Android】Android实现socket网络通信

    SOCKET网络通信系列文章链接如下 小沐学python 一 Python简介和安装 Python实现socket网络通信 C 实现socket网络通信 Windows Android实现socket网络通信 nodejs实现socket网
  • Opencv立体相机标定

    0 简要 立体相机标定是立体视觉深度测量的重要步骤 相机标定的精度很大程度上决定了深度的精度 因此掌握立体相机的标定算法和过程至关重要 由于相机标定原理可以在网上找到很多相关资料 因此本文不展开讲原理部分 感兴趣的同学可以移步到https
  • MySQL数据库学习——DQL语句的执行顺序

    1 查询年龄大于15的员工的姓名 年龄 并根据年龄进行升序排序 select name age from emp where age gt 15 order by age asc select e name e age from emp e
  • vim/vi常用命令集

    格式 指令 或指令 参数 指令解释 文件操作 vim vi 打开一个空文件 vim vi a txt 打开当前目录中的a txt文件 若文件不存在则创建一个名为a txt的文件 指定保存位置为当前目录 vim vi home a txt 打

随机推荐