Appearance
状态持久化
本节目标:理解“状态持久化”的核心思路,并能把它用于实际开发或面试表达。 为什么会报 “paths 不存在”? 你现在项目里 实际装的是 pinia-plugin-persist(或同系分叉), 它给 persist 提供的类型只有:
ts 复制编辑 persist: { enabled?: boolean strategies?: PersistStrategy[] // ← “paths” 在这里面} 而 pinia-plugin-persistedstate 才支持直接写:
ts 复制编辑 persist: { paths: [...] } 所以 TypeScript 会提示 “paths 不存在”。
解决方案(二选一)
| 做法 | 什么时候选 | 写法示例 |
| A. 继续用 pinia-plugin-persist | 你项目里已经在用它,改动最小 | ts persist: { enabled: true, strategies: [ { key: 'trade-view', storage: localStorage, paths: ['tabs', 'currentItem'], }, ], } |
| B. 换成 pinia-plugin-persistedstate | 喜欢简单写法 / 官方文档示例 | 1) pnpm add pinia-plugin-persistedstate |
- pinia.use(persistedState)
- ts persist: { key: 'trade-view', paths: ['tabs', 'currentItem'] }|
开始 | Pinia Plugin Persistedstate ==pnpm== ==add pinia-plugin-persistedstate==
// 全局开启 auto 持久化(不常用的做法) pinia.use( createPersistedState({ auto: true, // ➜ 默认所有 Store 都持久化 key: (id) => myapp-${id}, }), )
// 某个 Store 想排除 export const useTempStore = defineStore('temp', () => ({ tmp: 1 }), { persist: false, // 显式关闭 }) > 来自 <https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/>
