SSR、持久化与测试边界
QueryClient 是带缓存的运行时对象。SSR 应为每个请求创建独立 client,服务端预取后脱水,客户端用同一份状态 hydration;共享模块级 client 会把用户 A 的缓存暴露给用户 B。
持久化 query cache 时必须考虑版本、过期和敏感数据:订单可以短暂缓存,访问令牌和权限判断不应从客户端 cache 恢复。持久化失败要能降级为空 cache。
测试应控制 query client 的 retry、时间和网络;每个测试创建新 client 并清理,否则前一个测试的缓存会让后一个测试“无请求也通过”。
练习
为 SSR 页面写验收清单:服务端请求、脱水、客户端 hydration、身份切换、缓存过期各列一个可观察断言。
下一步
完成练习后打开本章答案,再回到TanStack Query 课程总览。