TanStack Query 数据层

共 17 题
#

1. TanStack Query v5 useSuspenseQuery/useSuspenseInfiniteQuery 的工程价值

A 它仍然需要手动判断 isLoading 分支
B 它不能在 SSR 场景使用
C 它让组件在数据未就绪时直接挂起,由 Suspense 边界处理加载态 ✓ 正确答案
D 它必须配合 useInfiniteQuery 使用
#

2. Query 的 SSR Streaming 与 dehydrate/hydrate 的工程价值

A 让客户端重新请求一次服务端数据
B 把服务端缓存序列化并传输到客户端复用,避免重复请求 ✓ 正确答案
C 仅用于打包体积优化
D 替代 SSR 本身
#

3. Query v5 的服务器状态缓存、queryKey、staleTime/gcTime

A 两者含义完全相同
B staleTime 决定数据新鲜度,gcTime 决定缓存保留时长 ✓ 正确答案
C gcTime 决定数据新鲜度,staleTime 决定缓存保留时长
D 两者都不影响缓存行为
#

4. TanStack Router 的 router.invalidate 与 loaderDeps 依赖跟踪的工程价值

A 仅用于类型标注
B 替代 router.invalidate
C 声明 loader 的响应式依赖,依赖变化时自动重新执行 loader ✓ 正确答案
D 控制 loader 的并发数
#

5. Router 与 Query 缓存的协作

A 强制重新请求忽略缓存
B 替代整个 Router
C 只做类型检查
D 缓存命中时直接返回数据,未命中才请求,避免重复请求 ✓ 正确答案
#

6. gcTime/staleTime/refetchOnWindowFocus 的策略组合

A staleTime 应始终大于 gcTime
B refetchOnWindowFocus 只在窗口聚焦时刷新已过期数据 ✓ 正确答案
C 三者互不相关
D gcTime 越小刷新越频繁
#

7. Query 的 networkMode: 'offlineFirst' 在 PWA 的工程价值

A 永远不发起网络请求
B 离线时优先使用缓存,缓存缺失才等待网络恢复 ✓ 正确答案
C 只在在线时缓存
D 与默认模式完全相同
#

8. Query Key Factory 模式与类型安全

A 集中管理 key 构造并保证失效与使用一致,避免拼写错误 ✓ 正确答案
B 提升请求速度
C 替代 staleTime
D 仅在 SSR 生效
#

9. 无限查询 getNextPageParam 与游标设计,基于游标 vs 基于页码的分页策略与缓存键设计

A 实现更简单
B 数据增删时不会导致后续页内容偏移 ✓ 正确答案
C 缓存键更简单
D 无需服务器配合
#

10. TanStack Router 的 defaultPreloadStaleTime 与缓存策略的工程应用

A 替代 gcTime
B 控制预取并发数
C 定义预取数据在多久内视为新鲜,决定导航时是否复用 ✓ 正确答案
D 仅用于 SSR
#

11. TanStack Router 与 TanStack Query 的 loader 数据获取集成

A 通过全局变量
B 通过 localStorage
C 通过 Router 的 routeContext 注入 ✓ 正确答案
D 无法传递
#

12. TanStack Query 的 queryClient.getQueryData 与 SSR 序列化协作

A 总是发起网络请求
B 同步返回缓存中的数据,不存在则返回 undefined ✓ 正确答案
C 仅用于 mutation
D 异步返回 Promise
#

13. Query 的 select 与 Transformer 在数据归一化的应用

A 对查询结果做变换/投影返回给组件 ✓ 正确答案
B 修改服务端缓存
C 发起新请求
D 控制缓存回收
#

14. Optimistic Update、Infinite Query、Suspense Query

A 先更新缓存再请求,失败时回滚 ✓ 正确答案
B 永远优先使用服务端数据
C 禁用缓存
D 只用于无限查询
#

15. queryKey factory pattern (https://tkdodo.eu/blog/effective-react-query-keys) 的工程价值

A 让 key 的创建、使用、失效保持一致并具备类型安全 ✓ 正确答案
B 加快网络请求
C 替代服务端
D 仅用于调试
#

16. offline mutation 队列与 networkMode 恢复重放,离线操作持久化与网络恢复后的冲突解决策略

A 只需按顺序执行即可
B 操作应幂等并服务端做冲突校验 ✓ 正确答案
C 只能丢弃离线操作
D 不需要持久化
#

17. TanStack Start 客户端导航、预取(preload)与 Query 缓存的协作

A 与 Query 缓存协作,预取后导航即数据就绪 ✓ 正确答案
B 预取会覆盖所有缓存
C 不支持 SSR
D 每次导航都全量刷新