如何使用vue实现短信验证性能优化

这次给大家带来如何使用vue实现短信验证性能优化,使用vue实现短信验证性能优化的注意事项有哪些,下面就是实战案例,一起来看一下。

平时我们在项目中进行注册等的时候,会经常用到短信验证的功能,但是现在现在很多短信验证都是存在下面几个问题,例如短信验证时间为60s的时候,

1. 当点击完按钮时,倒计时还没到60s过完时,刷新浏览器,验证码按钮又可以重新点击

2.当点击按钮倒计时开始,例如在50s的时候我关闭了浏览器,过了5s后,我在打开,此时时间倒计时的时间应该是45s左右,但是当重新打开浏览器的时候,按钮又可以重新点击了

为了解决上面的两个问题,就需要把时间都写到localstorage里面去,当打开页面的时候,就去localstorage里面去取,我这里就贴上我的解决方法,因为前几天有个vue的项目用到该方法,所以我这里就写个vue的方法出来吧

组件里面的html代码:

登录后复制

重点来啦

在data里面定义几个需要用到的变量:

 second: 60, flag: true, timer: null // 该变量是用来记录定时器的,防止点击的时候触发多个setInterval

登录后复制

获取短信验证的方法:

getCode() {   let that = this;   if (that.flag) {    that.flag = false;    let interval = window.setInterval(function() {     that.setStorage(that.second);     if (that.second-- <= 0) {      that.second = 60;      that.flag = true;      window.clearInterval(interval);     }    }, 1000);   }  }

登录后复制

写入和读取localstorage:

     setStorage(parm) {   localStorage.setItem("dalay", parm);   localStorage.setItem("_time", new Date().getTime());  },  getStorage() {   let localDelay = {};   localDelay.delay = localStorage.getItem("dalay");   localDelay.sec = localStorage.getItem("_time");   return localDelay;  }

登录后复制

防止页面刷新是验证码失效:

judgeCode() {   let that = this;   let localDelay = that.getStorage();   let secTime = parseInt(    (new Date().getTime() - localDelay.sec) / 1000   );   console.log(localDelay);   if (secTime > localDelay.delay) {    that.flag = true;    console.log("已过期");   } else {    that.flag = false;    let _delay = localDelay.delay - secTime;    that.second = _delay;    that.timer = setInterval(function() {     if (_delay > 1) {      _delay--;      that.setStorage(_delay);      that.second = _delay;      that.flag = false;     } else {                           // 此处赋值时为了让浏览器打开的时候,直接就显示剩余的时间      that.flag = true;      window.clearInterval(that.timer);     }    }, 1000);   }  }

登录后复制

然后在html挂载页面完成后的生命钩子(mounted)中调用judgeCode()方法就能实现该功能了

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

如何使用vue中filter

怎样使用vue判断dom的class

以上就是如何使用vue实现短信验证性能优化的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2751135.html

(0)
上一篇 2025年3月8日 05:47:35
下一篇 2025年3月8日 05:47:41

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎样使用vue实现选项卡及选项卡切换效果

    这次给大家带来怎样使用vue实现选项卡及选项卡切换效果,使用vue实现选项卡及选项卡切换效果的注意事项有哪些,下面就是实战案例,一起来看一下。 这里不跟大家再去把Vue文档上的一些指令用法或者基础知识再复述一遍,既然是从入门到实战,我直接将…

    2025年3月8日
    200
  • Vue怎样实现beforeEnter钩子函数

    这次给大家带来Vue怎样实现beforeEnter钩子函数,Vue实现beforeEnter钩子函数的注意事项有哪些,下面就是实战案例,一起来看一下。 为什么要自造beforeEnter钩子函数? 看下问题场景:项目中有一单词列表页面,每个…

    编程技术 2025年3月8日
    200
  • 利用cropper.js封装vue如何实现在线图片裁剪组件功能(详细教程)

    这篇文章主要介绍了基于cropper.js封装vue实现在线图片裁剪组件功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下 效果图如下所示, github:demo下载 cropper.js github:cropper.js 立即学习…

    2025年3月8日
    200
  • 使用React中的Native实现图片查看组件

    这篇文章主要介绍了react native 图片查看组件的方法,现在分享给大家,也给大家做个参考。 React Native 图片查看组件:react-native-image-viewer,纯JS组件,小巧快速的图标查看组件。支持图片放大…

    2025年3月8日
    200
  • 怎样操作vue2.0 移动端实现下拉刷新和上拉加载

    这次给大家带来怎样操作vue2.0 移动端实现下拉刷新和上拉加载,操作vue2.0 移动端实现下拉刷新和上拉加载的注意事项有哪些,下面就是实战案例,一起来看一下。 直接上代码,不懂的多看几遍,下面我换会告诉大家如何使用。 下拉更新 松开更新…

    编程技术 2025年3月8日
    200
  • 如何利用Vue组件实现弹窗功能

    这次给大家带来如何利用Vue组件实现弹窗功能,利用Vue组件实现弹窗功能的注意事项有哪些,下面就是实战案例,一起来看一下。 最近在使用element-ui框架,用到了Dialog对话框组件,大致实现的效果,跟我之前自己在移动端项目里面弄的一…

    2025年3月8日
    200
  • 如何做出vue移动端实现下拉刷新功能

    这次给大家带来如何做出vue移动端实现下拉刷新功能,做出vue移动端实现下拉刷新功能的注意事项有哪些,下面就是实战案例,一起来看一下。 说这个功能之前,大家要先了解一下,要怎么触发滚动条事件。 一定要注意,所有滚动事件都必须要满足这个条件,…

    2025年3月8日
    200
  • 怎样使用JS实现哈夫曼编码

    这次给大家带来怎样使用js实现哈夫曼编码,使用js实现哈夫曼编码的注意事项有哪些,下面就是实战案例,一起来看一下。 原始版 function cal(str) { if (typeof str !== ‘string’ || str.len…

    编程技术 2025年3月8日
    200
  • 如何使用jQuery实现雪花飘落

    这次给大家带来如何使用jQuery实现雪花飘落,使用jQuery实现雪花飘落的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 最近闲来无事,准备写个雪花飘落的效果,没有写太牛逼的特效,极大的简化了代码量,这样容易读取代码,用起来也很…

    2025年3月8日 编程技术
    200
  • 在vue中如何实现父组件向子组件传递多个数据

    下面我就为大家分享一篇vue父组件向子组件传递多个数据的实例,具有很好的参考价值,希望对大家有所帮助。 在平时我们使用VUE组件的时候,经常需要将父组件的某些数据传递给子组件,这个时候,我们通常会有很多的办法,这里主要分为两种情况: 第一种…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论