Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现


Posted in Javascript onSeptember 04, 2020

今天我们使用本地缓存localStorage来实现页面刷新了,验证码倒计时还是和刷新时一样,而不是清零,其次我们可以使用localStorage去实现用户信息缓存,记住密码等等关于缓存的功能,在这里就简单演示一下验证码功能。

一、功能实现

话不多说,直接上代码

<template>
	<button @click="getCode()" :disabled="!show">
  <span v-show="show">发送验证码</span>
  <span v-show="!show" class="count">{{count}} s</span>
 </button>
</template>
<script>
 let TIME_COUNT = 60; // 设置一个全局的倒计时的时间
 export default {
 data() {
  return {
   show: true,
   count: '',
   timer: null,
  }
 },
 components: {
  marquee
 },
 created(){
   // 进入页面时获取倒计时中止的位置,并继续计时
   if (localStorage.regtime > 0 && localStorage.regtime <= TIME_COUNT){
    TIME_COUNT = localStorage.regtime;
    this.count = TIME_COUNT;
    this.show = false;
    this.timer = setInterval(() => {
     if (this.count > 0 && this.count <= TIME_COUNT) {
      this.count--
      localStorage.regtime = this.count;
     } else {
      this.show = true;
      clearInterval(this.timer);
      this.timer = null
     }
    }, 1000)
   }
 },
 methods: {
  getCode () {
   // 验证码倒计时
   if (!this.timer) {
    this.count = TIME_COUNT
    localStorage.regtime = this.count;
    this.show = false
    this.timer = setInterval(() => {
    if (this.count > 0 && this.count <= TIME_COUNT) {
     this.count--
     localStorage.regtime = this.count;
    } else {
     this.show = true
     clearInterval(this.timer)
     this.timer = null
    }
   }, 1000)
  }
 }
 }
</script>

二、知识拓展

1.对比cookies,sessionStorage 和 localStorage 三大缓存的主要区别

1)存储大小

  • cookie数据大小不能超过4k。
  • sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

2)有效时间

  • localStorage:存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
  • sessionStorage:数据在当前浏览器窗口关闭后自动删除。
  • cookie:设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭,

3)数据与服务器之间的交互方式

  • cookie的数据会自动的传递到服务器,服务器端也可以写cookie到客户端。
  • sessionStorage仅在本地保存,只能在同一标签下共享。
  • localStorage仅在本地保存,同一浏览器,标签页全部共享。

4)适合场景使用

  • localStorage:适合用于用户离开不清除的数据,如记住密码。
  • sessionStorage:适合用于做一些用户离开时及清除的数据,如用户信息。
  • cookie:适合用于和服务器交互的数据,如用户发起请求的唯一凭证。

当然只是说谁更适合,存在即合理,别和我杠。

2.localStorage写法

localStorage.getItem("code")//或localStorage.code或localStorage["code"],获取code
localStorage.setItem("code","A")//或localStorage.code="A"或localStorage["code"]="A",存储code
localStorage.removeItem("code")//存储的持久数据不清除是不会丢失的,清除code
localStorage.clear(); //清除本地全部localStorage缓存

总结

到此这篇关于Vue利用localStorage本地缓存使页面刷新验证码不清零的文章就介绍到这了,更多相关Vue页面刷新验证码不清零内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript mouseover、mouseout停止事件冒泡的解决方案
Apr 07 Javascript
js将当前时间格式转换成时间搓(自写)
Sep 26 Javascript
window.location.href中url中数据量太大时的解决方法
Dec 23 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
Aug 04 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
Jan 04 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
Treegrid的动态加载实例代码
Apr 29 Javascript
js实现旋转木马效果
Mar 17 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
如何从0开始用node写一个自己的命令行程序
Dec 29 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 Javascript
vue-cli3中配置alias和打包加hash值操作
Sep 04 #Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
Sep 04 #Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 #Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 #Javascript
在vue中axios设置timeout超时的操作
Sep 04 #Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
Sep 04 #Javascript
JavaScript中的执行环境和作用域链
Sep 04 #Javascript
You might like
使用phpQuery采集网页的方法
2013/11/13 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
php递归函数怎么用才有效
2018/02/24 PHP
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
jQuery实现王者荣耀手风琴效果
2020/01/17 jQuery
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
Python中生成器和迭代器的区别详解
2018/02/10 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
Python中函数的返回值示例浅析
2019/08/28 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
营业员演讲稿
2013/12/30 职场文书
2015年宣传工作总结
2015/04/08 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
Python采集壁纸并实现炫轮播
2022/04/30 Python
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android