当前位置: 首页 > news >正文

vue项目使用cookie、localStorage和sessionStorage进行储存数据

一,cookie的使用

1,首先加载模块

npm i js-cookie -S

2,在使用cookie的页面上进行引入

import Cookies from 'js-cookie'

3,使用方法
1 创建一个在整个网站上有效的Cookie

Cookies.set('name', 'value');

2 创建一个从现在起7天后过期的cookie,在整个站点上有效:

Cookies.set('name', 'value', { expires: 7 });

3 创建一个过期的cookie,对当前页面的路径有效:

Cookies.set('name', 'value', { expires: 7, path: '' });

4 读取cookie:

Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined

5 阅读所有可见的Cookie:

Cookies.get(); // => { name: 'value' }

6 删除cookie:

Cookies.remove('name');

7 删除对当前页面路径有效的cookie:

Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!

8 重要!删除cookie时,你必须传递用于设置cookie的完全相同的路径和域属性,除非您依赖于默认属性。
注意:删除未存在的cookie不会引发任何异常,也不会返回任何值

二,localStorage的使用

注:vue下使用localStorage和H5使用localStorage的方法是一致的,不需要引入插件

1,储存//数据 (key ,value)

localStorage.setItem('userName','HelloWeen');

2,获取

localStorage.getItem('userName')

3,删除

localStorage.removeItem('userName');

4,localStorage可以储存JSON对象,且没有时间限制的数据存储 ,除非主动删除。

//数组

var arr=[1,2,3];
localStorage.setItem("temp",arr); //会返回1,2,3
console.log(typeof localStorage.getItem("temp"));//string
console.log(localStorage.getItem("temp"));//1,2,3

5,localStorage.setItem() 不会自动将Json对象转成字符串形式

	var user= {"userName": "hello","age": 2};
	typeof localStorage.getItem("user");//也会返回String
	localStorage.setItem("user", user);//但是返回[object Object],

6,用localStorage.setItem()正确存储JSON对象方法是:
存储前先用JSON.stringify()方法将json对象转换成字符串形式
JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串
获取的时候要将之前存储的JSON字符串使用JSON.parse()先转成JSON对象再进行操作

	var user= {"userName": "hello","age": 2};
	user= JSON.stringify(user); //转化为JSON字符串  "{"userName":"hello","age":2}"
	localStorage.setItem("user", user);//返回{"userName":"hello","age":2}
	user=JSON.parse(localStorage.getItem("user"));

三,sessionStorage的使用
定义和使用:
localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。
sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
提示: 如果你想在浏览器窗口关闭后还保留数据,可以使用 localStorage 属性, 改数据对象没有过期时间,今天、下周、明年都能用,除非你手动去删除。

1,方法

sessionStorage.key(int index) //返回当前 sessionStorage 对象的第index序号的key名称。若没有返回null。

sessionStorage.getItem(string key) //返回键名(key)对应的值(value)。若没有返回null。

sessionStorage.setItem(string key, string value) //该方法接受一个键名(key)和值(value)作为参数,将键值对添加到存储中;如果键名存在,则更新其对应的值。

sessionStorage.removeItem(string key) //将指定的键名(key)从sessionStorage 对象中移除。

sessionStorage.clear() //清除 sessionStorage 对象所有的项。

2,存储数据

2.1 采用setItem()方法存储

sessionStorage.setItem('testKey','这是一个测试的value值'); // 存入一个值

2.2 通过属性方式存储

sessionStorage['testKey'] = '这是一个测试的value值';

2.3 存储Json对象
sessionStorage也可存储Json对象:存储时,通过JSON.stringify()将对象转换为文本格式;读取时,通过JSON.parse()将文本转换回对象。

var userEntity = {
    name: 'tom',
    age: 22
};

// 存储值:将对象转换为Json字符串

sessionStorage.setItem('user', JSON.stringify(userEntity));

// 取值时:把获取到的Json字符串转换回对象

var userJsonStr = sessionStorage.getItem('user');
userEntity = JSON.parse(userJsonStr);
console.log(userEntity.name); // => tom

3,读取数据

3.1 通过getItem()方法取值

sessionStorage.getItem('testKey'); // => 返回testKey对应的值

3.2 通过属性方式取值

sessionStorage['testKey']; // => 这是一个测试的value值

相关文章:

  • win7更改桌面路径
  • forEach循环遍历取id进行删除
  • CocoaPods升级安装三方库报错
  • router和route 传参接收参数的应用
  • 阿里巴巴SUI Mobile的使用
  • 关于时间向前推算到天,并且算闰年的计算
  • Android传递Bitmap的两种简单方式及其缺陷
  • Android中的mvp
  • 前端初始化项目对axios的封装和token的存储应用以及config.js代理的配置 比较全的了。
  • 开机自启动redis
  • 在一个div标签中平行放置两个echarts 环形图
  • node-webkit,html打包成桌面应用,pc应用
  • 【HTML5】Web存储
  • 利用 vuex写一个todoList
  • Java日志组件2---Log4j(org.apache.log4j.Logger)
  • php的引用
  • Apache的80端口被占用以及访问时报错403
  • C++类的相互关联
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Cumulo 的 ClojureScript 模块已经成型
  • Java面向对象及其三大特征
  • JS实现简单的MVC模式开发小游戏
  • learning koa2.x
  • npx命令介绍
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • RxJS: 简单入门
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 基于游标的分页接口实现
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • # 达梦数据库知识点
  • #、%和$符号在OGNL表达式中经常出现
  • #Lua:Lua调用C++生成的DLL库
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (6)设计一个TimeMap
  • (BFS)hdoj2377-Bus Pass
  • (C#)一个最简单的链表类
  • (安卓)跳转应用市场APP详情页的方式
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (论文阅读30/100)Convolutional Pose Machines
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)ORM
  • (转载)Google Chrome调试JS
  • .Family_物联网
  • .net framework4与其client profile版本的区别
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 使用ajax控件后如何调用前端脚本
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @Transient注解
  • [<死锁专题>]
  • [30期] 我的学习方法
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [C++核心编程](四):类和对象——封装
  • [Deepin 15] 编译安装 MySQL-5.6.35