用react写一个验证码60s倒计时防刷效果

您所在的位置:网站首页 未能获取到短信验证码,请重新发送后再试 用react写一个验证码60s倒计时防刷效果

用react写一个验证码60s倒计时防刷效果

2024-07-09 09:25| 来源: 网络整理| 查看: 265

说明:

我们这里做一个验证码点击60s防刷的效果,主要用到了浏览器内存机制来存储代码刷新的剩余时间,以防刷新后页面数据清除。

方法也很简单,就是在代码开始时获取storage里面的值,将其附着到state上就可以了,点击的时候使用计时器来控制时间的减少。

代码中用到了reduxform和antd, 不过这些主要是用来做验证和样式,并不影响实现逻辑,主要还是js为主。

开始工作

首先是state

state = { time: 60, // 规定起始时间60s }

然后是生命周期函数,其实只要是在执行代码开头获取到storage里面的数值就可以了,不一定非得用生命周期,hooks也行。

componentDidMount() { let time = sessionStorage.getItem("time") if (time > 0 && time < 60) { this.setState({ time }) setTimeout(() => this.onGetCode(), 0); } } 下面是业务逻辑代码 post = async (data) => { // 提交代码 } // 点击验证码触发计时器 getCode = () => { setTimeout(() => this.onGetCode(), 0); } //异步判断过程,也是业务逻辑最主


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3