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 相关文章推荐
js的正则test,match,exec详细解析
Jan 29 Javascript
javascript显示中文日期的方法
Jun 18 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
Jan 21 Javascript
关于List.ToArray()方法的效率测试
Sep 30 Javascript
原生js实现水平方向无缝滚动
Jan 10 Javascript
基于Vuejs和Element的注册插件的编写方法
Jul 03 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
vue2组件之select2调用的示例代码
Oct 12 Javascript
vue+iview写个弹框的示例代码
Dec 05 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
Jan 12 Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 Javascript
微信小程序引入Vant组件库过程解析
Aug 06 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
国内php原创论坛
2006/10/09 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
Python实现在线程里运行scrapy的方法
2015/04/07 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python 解压pkl文件的方法
2018/10/25 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
前台文员的岗位职责
2013/11/14 职场文书
公司管理建议书范文
2014/03/12 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
财务会计求职信范文
2015/03/20 职场文书
2015年计划生育责任书
2015/05/08 职场文书
初中军训感想
2015/08/07 职场文书
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS