【Vue】pinia 数据持久化插件 pinia-plugin-persistedstate 使用

文章讲述了在Vue应用中使用Pinia进行状态管理时,如何通过pinia-plugin-persistedstate插件实现数据持久化,确保浏览器刷新后仍能保留如用户登录信息等关键状态。安装并引入插件后,在需要持久化的store模块中配置即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么需要持久化?

刷新浏览器后,重新加载页面时会重新初始化 vue、 pinia,而 pinia 中状态的值仅在内存中存在,而刷新导致浏览器存储中的数据就没了。

在实际开发中,浏览器刷新时,有些数据希望是保存下来的。如用户登录后,用户信息会存储在全局状态中,如果不持久化状态,那么每次刷新用户都需要重新登录了。

要解决这个问题非常简单,在状态改变时将其同步到浏览器的存储中,如 cookie、localStorage、sessionStorage 。每次初始化状态时从存储中去获取初始值即可。

说起来思路很简单,可真正实现起来就各种问题了,所以咱们就使用 pinia 的插件 pinia-plugin-persistedstate 来实现。

pinia-plugin-persistedstate

插件官方文档

  1. 安装依赖
npm install pinia-plugin-persistedstate
yarn add pinia-plugin-persistedstate
pnpm add pinia-plugin-persistedstate
  1. 引入该插件,在创建 pinia 实例时传入该插件
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

const pinia = createPinia()
pinia.use(piniaPluginPersistedstate)

export default pinia
  1. 在需要持久化状态的模块(modules)中设置 persist
...
const useUserStore = defineStore('user', () => {
	...
}, {
   key: 'user', // Key 用于引用 storage 中的数据
   storage: sessionStorage // 将数据持久化到的 storage 中
   // 更多配置请参考官方文档
})

参考链接

Pinia 数据持久化储存(pinia-plugin-persistedstate)Vue3 Vite3 状态管理 pinia 基本使用、持久化、在路由守卫中的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值