29 lines
682 B
TypeScript
29 lines
682 B
TypeScript
import type { App } from 'vue'
|
|
import { createPinia } from 'pinia'
|
|
import { createPersistedState } from 'pinia-plugin-persistedstate'
|
|
import { StorageKeyManager } from '@/utils/storage/storage-key-manager'
|
|
|
|
export const store = createPinia()
|
|
|
|
// 创建存储键管理器实例
|
|
const storageKeyManager = new StorageKeyManager()
|
|
|
|
// 配置持久化插件
|
|
store.use(
|
|
createPersistedState({
|
|
key: (storeId: string) => storageKeyManager.getStorageKey(storeId),
|
|
storage: localStorage,
|
|
serializer: {
|
|
serialize: JSON.stringify,
|
|
deserialize: JSON.parse
|
|
}
|
|
})
|
|
)
|
|
|
|
/**
|
|
* 初始化 Store
|
|
*/
|
|
export function initStore(app: App<Element>): void {
|
|
app.use(store)
|
|
}
|