用途:SWR 是面向 React 的数据请求 Hooks 库(v2,最新 2.4.1),实现 stale-while-revalidate 缓存失效策略,先读缓存再后台重新验证,适合客户端数据获取、缓存、重新验证、变更、乐观 UI、分页等场景。
主要能力:核心 useSWR(key, fetcher, options) 返回 data、error、isLoading、isValidating、mutate;useSWRMutation 处理远程变更,提供 trigger、isMutating;useSWRInfinite 支持分页与无限加载,通过 getKey、size、setSize 控制;useSWRSubscription 订阅 WebSocket、SSE 等实时数据源,同一 key 的多个组件共享单一订阅。支持条件请求(key 传 null 跳过)、错误重试(默认指数退避,可用 onErrorRetry 定制)、乐观更新(optimisticData、rollbackOnError、populateCache、revalidate)。
使用方式:安装 npm install swr。fetcher 为接收 key 的异步函数;可用 SWRConfig 包裹应用设置全局默认,如 fetcher、revalidateOnFocus、dedupingInterval。重新验证策略包括窗口聚焦(revalidateOnFocus,默认 true)、网络恢复(revalidateOnReconnect,默认 true)、挂载时若过期(revalidateIfStale,默认 true)、轮询(refreshInterval,默认 0 关闭)及手动 mutate()。
限制与规则:key 必须唯一,相同 key 共享缓存并去重请求;通过 SWRConfig 设置后 fetcher 可省略;mutate(key) 全局重新验证匹配该 key 的 Hook;数组 key 会把整个数组传给 fetcher;不可条件式调用 Hook,应使用 null key。资料未提供收费、价格与平台支持等更多信息。