Notice: Undefined index: public in /www/wwwroot/cuixinxin.cn/wp-content/plugins/wpjam-basic/includes/class-wpjam-core.php on line 137

Notice: Undefined index: public in /www/wwwroot/cuixinxin.cn/wp-content/plugins/wpjam-basic/includes/class-wpjam-core.php on line 137
Nuxt3中piana持久化处理! 卖坚果的怪叔叔
卖坚果的怪叔叔 卖坚果的怪叔叔
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
首页 › 技术 › Nuxt3中piana持久化处理!

Nuxt3中piana持久化处理!

坚果大叔
2025-06-22 18:45:45技术阅读 4,321

在使用nuxt3开发SSR渲染的项目的时候,如何将piana持久化到本地?如何自动引入自定义的仓库store模块,减少手动引入的麻烦?

使用插件 @pinia-plugin-persistedstate/nuxt 来达到持久化的目的。

npm i @pinia-plugin-persistedstate/nuxt 前提也需要安装 nuxt piana模块@pinia/nuxt 。

安装完成后在nuxt.config.js中进行以下配置。

1、在modules中配置刚刚安装的两个模块依赖。

首先设置piniaPersistedstate,cookieOptions是设置过期时间,storage用来指定使用localStorage还是sessionStorage。需要注意⚠️,在服务端渲染的时候没有此关键字。所以需要添加判断只能在客户端的时候持久化。

2、piana 中设置storesDirs,就能直接在页面使用相关store的配置,而无需手动引入。

export default defineNuxtConfig({
  ssr: true,
  compatibilityDate: '2024-11-01',
  devtools: { enabled: true },
  modules: [
    '@pinia/nuxt',
    '@pinia-plugin-persistedstate/nuxt',
  ],
  pinia: {
    storesDirs: ['./store/**']
  },
  piniaPersistedstate: {
    cookieOptions: {
      maxAge: 2 * 365 * 24 * 60 * 60 * 1000
    },
    storage: typeof window !== 'undefined' ? 'localStorage' : 'cookies',
    debug: import.meta.env.DEV
  },
})

另外有的解决方法中,让在plugins 新建如下插件配置,经过测试后其实是没有用的。

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

然后在自定义piana的模块中添加 persist:true选项来进行持久化配置。

import { defineStore } from "pinia";
const useBaseData= defineStore("abc", {
    state: () => ({
        data: null as string | null,
    }),
    actions: {
        async updateData(newVer: string) {

        },
    },
    persist: true,
});
export default useBaseData;
赞赏 赞(3)
生活中的突发事件
上一篇
吐血收集的1000+九号电动车提示音,免费领取!
下一篇
在小程序中查看

这是个😊,挣点服务器费用😜

热门文章
前端性能优化
将博客搬至CSDN
二维码扫码登录是什么原理
微信小程序批量提交后台审核
国庆假期的一些照片~
iphone 利用 Scriptable 添加网上国网电费小组件
专题标签
agent (1) CSS (15) dom (1) Es6入门系列 (14) Git (3) html (1) iview (1) JavaScript (9) js (4) Lif (1) Node (4) pyecharts (1) Python (10) ref (1) scriptable (1) Skill (1) vsCode (1) vue (4) wordpress (2) 三月 (1) 上海 (1) 假期 (1) 其他分享 (3) 前端两三问 (15) 古镇 (1) 外滩 (1) 对象 (1) 小程序 (5) 年度总结 (6) 年终总结 (1) 微信机器人 (4) 打字机 (1) 技术 (1) 日常问题 (8) 日常问题记录 (1) 春天 (2) 服务器 (2) 海族馆 (1) 生活 (8) 网上国网 (1) 记录 (3) 通勤 (1) 重学JavaScript (11) 面试题 (10) 🌸 (1)
什么是Agent?
2026-08-15 23:49:12
491 0 2
什么是 Skill?
2026-08-12 21:32:42
408 1 0
失业在家,我给小朋友做了一个练字小程序!
2026-08-07 16:21:52
810 10 1
上线8年,15万用户的小程序,一共赚了多少钱?
2026-05-30 18:01:24
4,789 4 0
3
  • 3
博主

一位佛系的前端开发者,略通摄影,乐于尝试新事物,热衷于美食。

友链
故事胶片
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔 Dacking
Copyright © 2017-2026 卖坚果的怪叔叔

开往-友链接力

萌ICP备20230818号

苏ICP备18048410号-3
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
# CSS # # JavaScript # # vue # # 微信 # # 生活 #
坚果大叔
345
文章
171
评论
432
喜欢