美文网首页
刷新页面仍然记住发送验证码的按钮状态

刷新页面仍然记住发送验证码的按钮状态

作者: 凯俊 | 来源:发表于2019-12-27 12:58 被阅读0次

碰到过好多次业务中有发送验证码的需求,然后总有一个避不开的小问题,就是点击发送验证码后,按钮需置灰一段时间(一般是倒计时 60s),然后才可以再次点击。

这当然很简单,按钮组件中加一个名为 time 的 state,初始值为 0,然后点击的时候把这个值置为 60,然后每秒 -1。

最后把按钮 disabled 属性绑定到这个 time,time 大于 0 时按钮禁用,time 等于 0 时,按钮可用。

但是这样有一个问题时如果用户刷新页面之后,这个 state 状态就丢失了,然后前端上这个按钮就又可以点击了。所以我们需要把这个状态持久化记录下来。

无非两种方案,存到 sessionStorage 里面,或者 localStorage 里面。

今天上午公司网络故障,顺手把这个极小但是很常见的需求封装了一下,发布了一个名为 @minax/countdown 的 npm 包。

npm install --save @minax/countdown
import { useCountDown, CountDownProvider } from '@minax/countdown'

暴露了 useCountDownCountDownProvider 两个方法,需要注意地是,useCountDown 为 React@16.8+ 才有的 Hooks 语法。所以需要保证你的 React 版本大于 16.8,CountDownProvider 其实就是基于 useCountDown 包装了一下(悄悄地说,本来不准备封装的,毕竟有了 Hooks 以后我就没写过 Class 组件了),这样就能在 Class 类型组件中使用了。

使用方法在 README 文件里面写的很详细了,还有在线 Demo,有需求的小伙伴自取。

相关文章

  • 刷新页面仍然记住发送验证码的按钮状态

    碰到过好多次业务中有发送验证码的需求,然后总有一个避不开的小问题,就是点击发送验证码后,按钮需置灰一段时间(一般是...

  • AJAX请求,表单自动提交,请求状态码canceld

    注册页面的发送验证码是button按钮,没有写它的type="button" 所以发送AJAX请求时,表单也被提交...

  • Vue页面刷新记住页面状态

    环境 vue项目,页面有搜索、筛选项等。 需求 页面跳转,切换或者刷新,希望可以记住用户在页面的筛选状态 方案v1...

  • 短信获取注册

    注册流程分析 客户端先发送一个手机号码到后端获取验证码,此时“获取验证码”按钮是激活状态,“下一步”按钮是禁用状态...

  • 简约1.3注册

    注册流程分析 客户端先发送一个手机号码到后端获取验证码,此时“获取验证码”按钮是激活状态,“下一步”按钮是禁用状态...

  • 6 简阅项目 注册短信验证功能

    注册流程分析 客户端先发送一个手机号码到后端获取验证码,此时“获取验证码”按钮是激活状态,“下一步”按钮是禁用状态...

  • 短信获取注册

    注册流程分析 客户端先发送一个手机号码到后端获取验证码,此时“获取验证码”按钮是激活状态,“下一步”按钮是禁用状态...

  • Android 用 RxBinding 与 RxJava2 实现

    场景:注册账号页面时,我们点击按钮发送验证码,在等待验证码时,界面会有倒计时提示,这此期间按钮不可点击。当倒计时结...

  • 【Swift3.0】iOS Swift 验证码按钮倒计时

    定义变量 调用完成获取验证码接口后,启动计时器 异步刷新页面按钮的文字

  • 获取验证码按钮的状态

    有四个状态 获取验证码 发送中 倒计时 60-1 重新获取 1.默认为获取验证码首先 点击发送请求 中 按钮为 发...

网友评论

      本文标题:刷新页面仍然记住发送验证码的按钮状态

      本文链接:https://www.haomeiwen.com/subject/uzfdoctx.html