用途:在 React 项目中使用 SWR 时,统一自定义 Hook 的开发规范,适用于新建、修改或审查 Hook,以及将旧 Hook 迁移到正确模式。范围仅限服务端状态(数据获取、缓存、重新验证、变更),不涉及 Zustand、Redux、Recoil、Jotai 等客户端状态管理。目标为 SWR 2.x 的 useSWR、useSWRMutation、useSWRInfinite。
主要能力与约定:每个 Hook 必须独占目录,采用 kebab-case 命名,包含 index.ts(显式具名导出,禁止 export *)、实现文件、类型文件与同目录测试;所有 SWR key 必须来自 lib/swr-keys.ts 工厂,禁止硬编码;不得用 fetch + useState + useEffect 手写数据获取,应使用 SWR;默认配置集中在 lib/swr-config.ts,并通过 SWRConfig 注入。支持条件获取(key 传 null)、mutate 缓存失效、useReducer 状态机、判别联合类型、as const 元组返回等。React 19 可优先 useOptimistic,启用 React Compiler 时不写手动 useMemo/useCallback。Hook 建议不超过约 300 行、单一职责、useEffect 不超过 2 个。测试用 @testing-library/react 的 renderHook 配合 SWRConfig 隔离缓存。共享工具应提取到 lib/utils/,避免重复。
必要用法:若项目未安装 SWR,运行 npm install swr(或等价包管理器命令),创建 lib/swr-keys.ts 与 lib/swr-config.ts,并用 SWRConfig 包裹应用根节点。
限制:未提供具体模板、完整反模式表与检查清单,需查阅 references 下的 swr-patterns.md、react19-and-compiler.md、testing-hooks.md、anti-patterns-checklist.md。未提供收费、平台与效果信息。