基本使用(vue写的)
<button @click="addsession">存储session值</button>
<button @click="session">获取session存储值</button>
<button @click="deletsession">删除session存储值</button>
addsession() {
const data = { "KEY": "111" };
sessionStorage.setItem("user", JSON.stringify(data));
},
session() {
let user = sessionStorage.getItem("user");
if (user != null) {
// 将JSON格式的对象解析为js对象,currentUser为一个js对象
this.currentUser = JSON.parse(user);
console.log(JSON.parse(user))
console.log(user)
}
},
deletsession() {
sessionStorage.removeItem("user");
},
解释说明
在中使用sessionStorage
存储的数据是在整个会话期间保持有效的,这意味着无论您导航到哪个路由,只要在同一个浏览器标签或窗口中,您都可以访问和获取相同的数据。sessionStorage
是一个会话级别的存储,数据在同一会话内的不同页面之间共享。
这意味着,如果您在一个页面中使用sessionStorage
存储数据,然后导航到另一个路由,您仍然可以从那个路由中访问和获取相同的数据。这对于在不同页面之间共享一些状态或数据非常有用。
但要注意以下几点:
-
数据仅在同一浏览器标签或窗口中有效。如果您在不同的浏览器标签或窗口中打开应用程序,
sessionStorage
中的数据不会被共享。 -
数据仅在同一会话期间有效。一旦用户关闭浏览器标签或窗口,会话结束,
sessionStorage
中的数据将被清除。 -
sessionStorage
中存储的数据通常是以字符串形式存储的,因此您可能需要在检索数据时进行反序列化(例如,将JSON字符串解析为JavaScript对象)。
总之,sessionStorage
是一个方便的工具,用于在同一浏览器会话内在不同路由之间共享数据,但不会在不同浏览器会话或会话结束后保留数据。
能否替代vuex
sessionStorage
可以用于在应用程序中临时存储和共享数据,但它通常不适合替代 Vuex
。虽然它们都用于在应用程序中管理数据,但它们有不同的目的和用途。
下面是一些关于 sessionStorage
和 Vuex
的比较:
-
sessionStorage
:- 适用于在同一浏览器会话期间共享数据,例如在不同路由之间共享数据。
- 用于存储简单的数据,通常以字符串形式存储。
- 不适用于全局应用程序状态管理,因为它只在客户端本地存储数据。
- 用于小型应用或需要简单状态管理的场景。
-
Vuex
:- 适用于管理全局应用程序状态,包括共享数据、状态管理、和数据的响应式更新。
- 提供了一个集中式的状态管理工具,使得不同组件之间可以轻松访问和更新数据。
- 支持模块化、命名空间、中间件等高级状态管理功能。
- 适用于大型复杂应用程序,或需要高级状态管理和数据传递的场景。
总之,sessionStorage
主要用于临时存储和共享数据,而 Vuex
更适合于应用程序的全局状态管理。如果您的应用需要复杂的状态管理、组件之间的通信以及更高级的功能,那么使用 Vuex
是更好的选择。如果您只需要在不同路由之间共享少量数据,sessionStorage
可能足够了。通常,这两者可以共存,具体取决于您的应用程序需求。