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