Vue基于localStorage存储信息代码实例


Posted in Javascript onNovember 16, 2020

一 什么是localStorage

对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和 sessionStorage

sessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载

localStorage(长期存储) :与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存在

所以上次使用cookie的时候就遇到了一个坑,设置后马上访问session会获取不到,蛋疼,还需要刷新一下,原因是:

当我们首次访问设置Cookie的页面时,服务器会把设置的Cookie值通过响应头发送过来,告诉浏览器将cookie存储的本地相应文件夹中(注意:第一次访问时本地还没有存储Cookie,所以此时获取不到值);

当第二次访问(或在进行cookie设置后,过期前所有的访问)时,请求头信息你中都会把Cookie值携带。(百度到的,暂时还没理解透彻,先搬过来).二 使用方法

注意:sessionStorage 和 localStorage 的用法基本一致,引用类型的值要转换成JSON,所以这里就只列举localStorage

1 保存

//对象
const info = { name: 'hou', age: 24, id: '001' };
//字符串
const str="haha";
localStorage.setItem('hou', JSON.stringify(info));
localStorage.setItem('zheng', str);

2 获取

var data1 = JSON.parse(localStorage.getItem('hou'));
var data2 = localStorage.getItem('zheng'); 

3 删除

//删除某个
localStorage.removeItem('hou');
//删除所有
localStorage.clear();

4 监听

Storage 发生变化(增加、更新、删除)时的 触发,同一个页面发生的改变不会触发,只会监听同一域名下其他页面改变 Storage
window.addEventListener('storage', function (e) {
console.log('key', e.key); console.log('oldValue', e.oldValue);

console.log('newValue', e.newValue); console.log('url', e.url);
})

5浏览器中查看

Vue基于localStorage存储信息代码实例6

vue中实践

根据我的需求来的一个默认记住上次选择的,很简单

添加数据的时候,下次添加默认记住我上次的选择

所以,在添加或者提交的时候存储值即可,

localStorage.setItem('projectId',me.workhourData.projectId+","+me.workhourData.projectManager);在打开新建页面的时候获取一下就好了,只需要判断非空就行

//记住上次选中的审核人
      if(localStorage.length>0){
        var mydata = localStorage.getItem('projectId');
        if(mydata!=null){
          var arr3=mydata.split(",");
          if(arr3[0]==me.workhourData.projectId){
            me.workhourData.projectManager=arr3[1];
          }
        }
      }

7 注意点

  • localStorage有效期是永久的。一般的浏览器能存储的是5MB左右。sessionStorage api与localStorage相同。
  • sessionStorage默认的有效期是浏览器的会话时间(也就是说标签页关闭后就消失了)。
  • localStorage作用域是协议、主机名、端口。(理论上,不人为的删除,一直存在设备中)
  • sessionStorage作用域是窗口、协议、主机名、端口。

知道了这些知识点后,你的问题就很好解决了。
localStorage是window上的。所以不需要写this.localStorage,vue中如果写this,是指vue实例。会报错

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery学习笔记[1] jQuery中的DOM操作
Dec 03 Javascript
javascript window.confirm确认 取消对话框实现代码小结
Oct 21 Javascript
php对mongodb的扩展(初识如故)
Nov 11 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
纯JS实现可用于页码更换的飞页特效示例
May 21 Javascript
vue中使用protobuf的过程记录
Oct 26 Javascript
详解基于React.js和Node.js的SSR实现方案
Mar 21 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
Jul 09 Javascript
JavaScript遍历数组和对象的元素简单操作示例
Jul 09 Javascript
vue-loader中引入模板预处理器的实现
Sep 04 Javascript
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
微信小程序自定义底部弹出框动画
Nov 18 #Javascript
vue 封装面包屑组件教程
Nov 16 #Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 #Javascript
小程序实现密码输入框
Nov 16 #Javascript
vue 使用localstorage实现面包屑的操作
Nov 16 #Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 #Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 #Javascript
You might like
扩展你的 PHP 之入门篇
2006/12/04 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
使用jquery实现轮播图效果
2021/01/02 jQuery
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python中is与==判断的区别
2017/03/28 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
Python实现AI换脸功能
2020/04/10 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
爱耳日活动总结
2014/04/30 职场文书
党员倡议书
2015/01/19 职场文书
天坛导游词
2015/02/02 职场文书
中考学习决心书
2015/02/04 职场文书
医院见习总结
2015/06/24 职场文书
MySQL多表查询机制
2022/03/17 MySQL
Python闭包的定义和使用方法
2022/04/11 Python