This commit is contained in:
Putoo
2026-04-22 12:56:10 +08:00
parent 996bdbbd1c
commit 5857e6073f
11 changed files with 277 additions and 327 deletions

View File

@@ -91,9 +91,6 @@ src/
│ ├── im.ts # IM相关类型IMessage、ISession等
│ ├── api.ts # API服务相关类型请求参数、响应体等
│ └── common.ts # 通用类型(分页、响应体等)
├── utils/ # 底层基础工具函数(无业务逻辑,纯原子方法)
│ ├── base64.ts # 基础Base64工具备用优先用EXTEND工具
│ └── regex.ts # 正则校验工具备用优先用EXTEND工具
└── server/ # Nuxt服务端逻辑SSR接口、中间件等
├── api/ # 服务端接口
└── middleware/ # 服务端中间件(权限校验等)
@@ -145,10 +142,7 @@ src/
```bash
# 安装Pinia及Nuxt适配模块
npm install pinia @pinia/nuxt
# 安装持久化插件(用于登录态等核心状态兜底)
npm install @pinia-plugin-persistedstate/nuxt
npm install pinia @pinia/nuxt pinia-plugin-persistedstate
```
在`nuxt.config.ts`中配置启用Pinia、自动导入Stores、Composables、EXTEND工具、API服务
@@ -158,7 +152,7 @@ export default defineNuxtConfig({
srcDir: 'src/', // 指定源码目录
modules: [
'@pinia/nuxt', // Pinia Nuxt适配模块
'@pinia-plugin-persistedstate/nuxt' // 持久化插件
'pinia-plugin-persistedstate/nuxt' // 持久化插件
],
imports: {
dirs: [
@@ -217,16 +211,11 @@ export const useUserStore = defineStore('user', {
}
},
// 4. 本地持久化配置:仅缓存核心状态,刷新页面不丢失,避免大量数据存储
// 4. 本地持久化配置:使用 pinia-plugin-persistedstate 插件
// 仅缓存核心状态,刷新页面不丢失,避免大量数据存储
persist: {
enabled: true, // 开启持久化
strategies: [
{
key: 'user-auth-store', // 本地存储key避免与其他存储冲突
storage: localStorage, // 存储介质localStorage前端本地持久化
paths: ['token', 'userInfo'] // 仅持久化指定字段,减少存储开销
}
]
storage: piniaPluginPersistedstate.localStorage(),
pick: ['token', 'userInfo'] // 仅持久化指定字段,减少存储开销
}
})
```
@@ -665,7 +654,7 @@ npm run preview
|---|---|
|pinia|全局状态管理核心库|
|@pinia/nuxt|Pinia适配Nuxt4的模块支持自动导入|
|@pinia-plugin-persistedstate/nuxt|Pinia持久化插件实现状态本地备份|
|pinia-plugin-persistedstate|Pinia持久化插件支持Nuxt模块化集成SSR友好|
|ofetch|网络请求工具统一封装请求逻辑RequestEXTEND基础|
|axios|备选网络请求工具可根据需求替换ofetch|
|scss|样式预处理器,支持模块化样式|