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 相关文章推荐
jQuery EasyUI API 中文文档 - DataGrid数据表格
Nov 17 Javascript
Javascript表格翻页效果的具体实现
Oct 05 Javascript
简单的ajax连接库分享(不用jquery的ajax)
Jan 19 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
Nov 03 Javascript
简单实现JS计算器功能
Dec 21 Javascript
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
使用webpack打包后的vue项目如何正确运行(express)
Oct 26 Javascript
vue中引入mxGraph的步骤详解
May 17 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
May 22 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
JS中this的4种绑定规则详解
Feb 04 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
人大复印资料处理程序_补充篇
2006/10/09 PHP
PHP求最大子序列和的算法实现
2011/06/24 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
django解决跨域请求的问题
2018/11/11 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
Python tornado上传文件的功能
2020/03/26 Python
python实现学生通讯录管理系统
2021/02/25 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
详解CSS3:overflow属性
2020/11/17 HTML / CSS
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
学生学习总结的自我评价
2013/10/22 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
校长师德表现自我评价
2015/03/04 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
Python基础之元编程知识总结
2021/05/23 Python
Python之基础函数案例详解
2021/08/30 Python