useSystemSettingsManager
与用户无关的系统设置管理:启动获取、定时刷新、手动刷新;并发去重与版本对比;持久化缓存。
函数签名
typescript
interface FetchSystemSettingsResult<T> { data: T; version?: string }
interface UseSystemSettingsManagerOptions<T> {
fetchSettingsFn: () => Promise<FetchSystemSettingsResult<T>>
storageKeys?: { data?: string; meta?: string }
autoFetchOnMount?: boolean // default: true
refreshIntervalMs?: number // default: undefined(不自动刷新)
}
function useSystemSettingsManager<T = Record<string, any>>(
options: UseSystemSettingsManagerOptions<T>,
env: UseSystemSettingsManagerEnvironment
): UseSystemSettingsManagerReturn<T>返回值
| 属性名 | 类型 | 说明 |
|---|---|---|
settings | `Ref<T | null>` |
version | `Ref<string | null>` |
lastUpdatedAt | `Ref<number | null>` |
isLoading | Ref<boolean> | 是否加载中 |
error | `Ref<string | null>` |
hasSettings | Ref<boolean> | 是否已存在设置 |
refresh(force?) | () => Promise<boolean> | 手动刷新,force 跳过版本对比 |
clear() | () => void | 清空设置并停止定时 |
工作原理
- 启动:先读取缓存,若开启
autoFetchOnMount则立即拉取。 - 去重:并发
refresh()仅一次网络请求(共享 Promise)。 - 版本:相同
version跳过写入,仅更新时间戳(心跳)。 - 定时:
refreshIntervalMs启用周期刷新;组件卸载时停止。 - 手动:可随时
refresh(true)强制覆盖缓存。