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+HTML5实现图片上传前预览效果
Aug 20 Javascript
javascript制作照片墙及制作过程中出现的问题
Apr 04 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
Jun 17 Javascript
获取select的value、text值的简单示例(jquery与javascript)
Dec 07 Javascript
jQuery extend()详解及简单实例
May 06 jQuery
js实现城市级联菜单的2种方法
Jun 23 Javascript
基于jquery实现多选下拉列表
Aug 02 jQuery
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
详解vue移动端项目的适配(以mint-ui为例)
Aug 17 Javascript
快速解决vue-cli在ie9+中无效的问题
Sep 04 Javascript
jquery实现上传文件进度条
Mar 26 jQuery
js实现网页随机验证码
Oct 19 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
模仿OSO的论坛(三)
2006/10/09 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
菜单效果
2006/10/14 Javascript
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
Python Django基础二之URL路由系统
2019/07/18 Python
python合并多个excel文件的示例
2020/09/23 Python
社会实践自我鉴定
2013/11/07 职场文书
房产公证书范本
2014/04/10 职场文书
节能标语大全
2014/06/21 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
疾病证明书
2015/06/19 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
Mysql开启外网访问
2022/05/15 MySQL