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