题目
一个团队手拼 queryKey 去做缓存操作,结果失效范围时大时小;还有人以为缓存会自行更新,写操作后没有做后续处理。请说明 queryKey 的作用、默认缓存参数,以及手动读写缓存的边界。
考察目标
- queryKey 的构成与使用方式。
- 失效与手动读写缓存的差异。
- 默认缓存参数的运维含义。
说明 queryKey 的构成、失效与手动读写缓存的差异,以及默认缓存参数的运维含义。
一个团队手拼 queryKey 去做缓存操作,结果失效范围时大时小;还有人以为缓存会自行更新,写操作后没有做后续处理。请说明 queryKey 的作用、默认缓存参数,以及手动读写缓存的边界。
wagmi 的查询 hook 会返回 queryKey,它唯一标识一次查询,内容包含链、地址与参数等信息;invalidateQueries 会把匹配的查询标记为陈旧并重取活跃查询,getQueryData/setQueryData 用于手动读写缓存且不触发失效或重取。客户端默认 gcTime 为 5 分钟、staleTime 为 0、retry 为 3 次,SSR 场景下 gcTime 为 Infinity。实现差异与工程取舍见深入回答。
发现这道题有问题? 反馈此题