做外发的网站国际新闻网
1 localStorage 与 sessionStorage 的区别:
特性 | localStorage | sessionStorage |
---|---|---|
存储时长 | 永久存储,除非手动删除或者清空浏览器缓存 | 会话存储,浏览器关闭后数据丢失 |
数据生命周期 | 持久存在,直到被明确删除(即使关闭浏览器也不会消失) | 当前会话结束后数据自动清空(关闭标签页或浏览器) |
存储位置 | 存储在浏览器中(客户端) | 存储在浏览器当前会话中(客户端) |
跨标签页/窗口访问 | 数据对同源的所有标签页和窗口有效 | 数据只在同一个窗口或标签页内有效 |
存储容量 | 大约 5MB | 大约 5MB |
2. 适用场景
localStorage:
- 长期存储:适用于需要长期保存的用户数据,如用户登录状态、主题设置等,数据会持续存储,除非用户手动清除浏览器数据。
- 跨标签页共享数据:由于 localStorage
数据在同一浏览器的多个标签页之间是共享的,因此它适用于跨标签页共享一些常用数据(例如用户的主题偏好或身份验证信息)。
sessionStorage:
- 会话级数据存储:适用于只在当前浏览器会话中有效的数据。数据在浏览器或标签页关闭时会自动清除,适合于存储一些临时数据。
- 不跨标签页共享数据:sessionStorage 只在同一个标签页或窗口中有效,如果打开新标签页则数据不会被共享。
3.使用LocalStorage存储数据
(1)在 useLoginStore.js 中定义状态及存储数据的方法:
import { ref, computed } from 'vue'
import { defineStore } from 'pinia'const useLoginStore = defineStore('loginState', {state: () => {return {showLogin: false,userInfo: {}}},actions: {setLogin(show) {this.showLogin = show},