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 相关文章推荐
Javascript 各浏览器的 Javascript 效率对比
Jan 23 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
Feb 25 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
Feb 25 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
js+css实现回到顶部按钮(back to top)
Mar 02 Javascript
详述JavaScript实现继承的几种方式(推荐)
Mar 22 Javascript
使用JS编写的随机抽取号码的小程序
Aug 11 Javascript
老生常谈javascript的面向对象思想
Aug 22 Javascript
js实现单张图片平移切换效果
Oct 11 Javascript
AngularJs 禁止模板缓存的方法
Nov 28 Javascript
QML实现圆环颜色选择器
Sep 25 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
微信小程序自定义底部弹出框动画
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
2014/09/28 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
使用PHP开发留言板功能
2019/11/19 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
dwr spring的集成实现代码
2009/03/22 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
介绍Python中的fabs()方法的使用
2015/05/14 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
超简单使用Python换脸实例
2019/03/27 Python
用Python配平化学方程式的方法
2019/07/20 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
总经理秘书的岗位职责
2013/12/27 职场文书
澳大利亚商务邀请函
2014/01/17 职场文书
简历里的自我评价范文
2014/02/24 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
网络管理员岗位职责
2015/02/12 职场文书
道歉信范文
2015/05/12 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
python实现的web监控系统
2021/04/27 Python
nginx日志格式分析和修改
2022/04/28 Servers