5 changed files with 52 additions and 1 deletions
@ -0,0 +1,38 @@
|
||||
/** |
||||
* Pinia Persist Plugin |
||||
* Pinia 持久化插件 |
||||
* @link https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/
|
||||
* |
||||
*/ |
||||
import type { Pinia } from 'pinia' |
||||
import { createPersistedState } from 'pinia-plugin-persistedstate' |
||||
import type { PersistedStateFactoryOptions } from 'pinia-plugin-persistedstate' |
||||
import { getCommonStoragePrefix } from '@/utils/env' |
||||
|
||||
export const PERSIST_KEY_PREFIX = getCommonStoragePrefix() |
||||
|
||||
// TODO customSerializer
|
||||
|
||||
/** |
||||
* Register Pinia Persist Plugin |
||||
* 注册 Pinia 持久化插件 |
||||
* |
||||
* @param pinia Pinia instance Pinia 实例 |
||||
*/ |
||||
export function registerPiniaPersistPlugin(pinia: Pinia) { |
||||
pinia.use(createPersistedState(createPersistedStateOptions(PERSIST_KEY_PREFIX))) |
||||
} |
||||
|
||||
/** |
||||
* Create Persisted State Options |
||||
* 创建持久化状态选项 |
||||
* |
||||
* @param keyPrefix prefix for storage key 储存键前缀 |
||||
* @returns persisted state factory options |
||||
*/ |
||||
export function createPersistedStateOptions(keyPrefix: string): PersistedStateFactoryOptions { |
||||
return { |
||||
storage: localStorage, |
||||
key: id => `${keyPrefix}__${id}`, |
||||
} |
||||
} |
Reference in new issue