vuex中的变量为什么存在cookie里面

vuex中的变量为什么存在cookie里面,第1张

因为cookie采取同源策略。Vuex是一个专为Vuejs应用程序开发的 状态管理模式库。它采用集中式存储管理应用的所有组件的状态,vuex中的变量存在cookie里面是因为cookie采取同源策略,只有相同域名的网页才能获取域名对应的cookie,而别人在其他域名无法获取自己的cookie,也就无法获取自己的token。

一,cookie的使用

1,首先加载模块

npm i js-cookie -S

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

import Cookies from 'js-cookie'

3,使用方法

创建一个在整个网站上有效的Cookie

Cookiesset('name', 'value');

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

Cookiesset('name', 'value', { expires: 7 });

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

Cookiesset('name', 'value', { expires: 7, path: '' });

读取cookie:

Cookiesget('name'); // => 'value'

Cookiesget('nothing'); // => undefined

阅读所有可见的Cookie:

Cookiesget(); // => { name: 'value' }

删除cookie:

Cookiesremove('name');

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

Cookiesset('name', 'value', { path: '' });

Cookiesremove('name'); // fail!

Cookiesremove('name', { path: '' }); // removed!

重要!删除cookie时,您必须传递用于设置cookie的完全相同的路径和域属性,除非您依赖于默认属性。

注意:删除未存在的cookie不会引发任何异常,也不会返回任何值

二,localStorage的使用

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

1,储存

//数据

localStoragesetItem('userName','HelloWeen');

2,获取

localStoragegetItem('userName')

3,删除

localStorageremoveItem('userName');

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

//数组

var arr=[1,2,3];

localStoragesetItem("temp",arr); //会返回1,2,3

consolelog(typeof localStoragegetItem("temp"));//string

consolelog(localStoragegetItem("temp"));//1,2,3

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

var user= {"userName": "hello","age": 2};

typeof localStoragegetItem("user");//也会返回String

localStoragesetItem("user", user);//但是返回[object Object],

6,用localStoragesetItem()正确存储JSON对象方法是:

存储前先用JSONstringify()方法将json对象转换成字符串形式

JSONstringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串

1

2

3

1

2

3

4

5

1

1

1

2

1

2

3

1

1

1

2

1

1

1

1

1

获取的时候要将之前存储的JSON字符串使用JSONparse()先转成JSON对象再进行 *** 作

var user= {"userName": "hello","age": 2};

user= JSONstringify(user); //转化为JSON字符串 "{"userName":"hello","age":2}"

localStoragesetItem("user", user);//返回{"userName":"hello","age":2}

user=JSONparse(localStoragegetItem("user"));

三,sessionStorage的使用

定义和使用

localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。

sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

提示: 如果你想在浏览器窗口关闭后还保留数据,可以使用 localStorage 属性, 改数据对象没有过期时间,今天、下周、明年都能用,除非你手动去删除。

1,方法

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

1

1

2

3

4

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

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

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

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

JSON。parse()作用是将字符串转化成json数组,JSONstringify()作用是将json数组转换成字符串

对浏览器来说,使用Web Storage存储键值对比存储Cookie方式更直观,而且容量更大,它包含两种:localStorage和sessionStorage

所以上次使用cookie的时候就遇到了一个坑,设置后马上访问session会获取不到,蛋痛,还需要刷新一下,原因是:

当我们首次访问设置Cookie的页面是,服务器会把设置的Cookie值通过响应头送过来,告诉浏览器将cookie存储的本地相应文件夹中(注意:第一次访问时本地还没有存储Cookie,所以此时获取不到值);

当第二次访问时(或是进行cookie设置后,过期前所有的访问)时,请求头信息中你都会把Cookie值携带。

localStorage有效期是永久的。一般的浏览器能存储的是5MB左右。sessionStorage api与localStorage相同。

sessionStorage默认的有效期是浏览器的会话时间(也就是说标签页关闭后就消失了)。

localStorage作用域是协议、主机名、端口。(理论上,不人为的删除,一直存在设备中)

sessionStorage作用域是窗口、协议、主机名、端口。

知道了这些知识点后,你的问题就很好解决了。

localStorage是window上的。所以不需要写thislocalStorage,vue中如果写this,是指vue实例。会报错

首先要了解session是会生成一个session_id,并且通过cookie来存储传输的,当浏览器中存在cookie的时候,每次请求会在请求头header自动带上cookie,如果在请求头看不到coo

以上就是关于vuex中的变量为什么存在cookie里面全部的内容,包括:vuex中的变量为什么存在cookie里面、vue项目开发中什么时候用cookie什么时候用sessionstorage、vue中使用localStorage存储信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9496161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存