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中void(0)的具体含义解释
Aug 02 Javascript
jQuery下拉美化搜索表单效果代码分享
Aug 25 Javascript
JavaScript继承模式粗探
Jan 12 Javascript
JS随机洗牌算法之数组随机排序
Mar 23 Javascript
AngularJS自定义服务与fliter的混合使用
Nov 24 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
Mar 25 Javascript
webpack配置文件和常用配置项介绍
Apr 28 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
Jul 27 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 Javascript
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
Apr 03 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入门源程序
2006/10/09 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
IE无法设置短域名下Cookie
2010/09/23 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
微信小程序中button去除默认的边框实例代码
2019/08/01 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python字符串详细介绍
2015/05/09 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
Python序列化pickle模块使用详解
2020/03/05 Python
使用python实现飞机大战游戏
2020/03/23 Python
python中关于数据类型的学习笔记
2020/07/19 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
几道PHP的面试题
2012/05/19 面试题
介绍一下.net和Java的特点和区别
2012/09/26 面试题
个人简历自荐信
2014/06/26 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书