Skip to content

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<Tnull>`
version`Ref<stringnull>`
lastUpdatedAt`Ref<numbernull>`
isLoadingRef<boolean>是否加载中
error`Ref<stringnull>`
hasSettingsRef<boolean>是否已存在设置
refresh(force?)() => Promise<boolean>手动刷新,force 跳过版本对比
clear()() => void清空设置并停止定时

工作原理

  1. 启动:先读取缓存,若开启 autoFetchOnMount 则立即拉取。
  2. 去重:并发 refresh() 仅一次网络请求(共享 Promise)。
  3. 版本:相同 version 跳过写入,仅更新时间戳(心跳)。
  4. 定时:refreshIntervalMs 启用周期刷新;组件卸载时停止。
  5. 手动:可随时 refresh(true) 强制覆盖缓存。