189 字
1 分钟
Pinia持久化配置

Pinia 本身不带持久化功能,但我们可以通过插件来实现。


📦 安装持久化插件#

推荐使用官方生态的 pinia-plugin-persistedstate

Terminal window
npm install pinia-plugin-persistedstate

⚙️ 在 Nuxt 中配置(支持自动导入的写法)#

plugins/piniaPersist.client.ts

.client.ts 确保只在浏览器端执行(避免 SSR 报错)

import { defineNuxtPlugin } from '#app'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.$pinia.use(piniaPluginPersistedstate)
})

Nuxt 会自动加载 plugins/ 下的插件文件。


🧩 在 store 里开启持久化#

stores/user.ts
import { defineStore } from 'pinia'
export const useUserStore = defineStore('user', {
state: () => ({
token: '',
name: ''
}),
persist: true // ⚡ 启用持久化
})

默认会使用 localStorage 存储。


⚙️ 进阶:自定义存储位置(localStorage / sessionStorage)#

persist: {
storage: sessionStorage,
key: 'my_user'
}

✅ 使用#

<script setup lang="ts">
const userStore = useUserStore()
userStore.token = 'qwq' // 会自动保存到 localStorage
</script>
Pinia持久化配置
https://iqwq.com/posts/web/vue/pinia-persistedstate/
作者
Xiaolin
发布于
2025-09-11
许可协议
CC BY-NC-SA 4.0