CodeWalk

TanStack Query(React Query) 数据获取最佳实践

作者:孤独的心 · 2026-05-30 12:55

TanStack Query v5 的核心概念(Query/QueryClient/Mutation)是什么?如何配置缓存时间 staleTime/gcTime?分页和无限滚动如何实现?乐观更新怎么做?

回答

孤独的心

useQuery({queryKey:['todos'], queryFn:fetchTodos, staleTime:5000, gcTime:300000})。staleTime 新鲜期(期内不重新请求);gcTime 缓存保留时间(原 cacheTime)。分页: useQuery+placeholderData:keepPreviousData。无限滚动: useInfiniteQuery({queryFn:({pageParam})=>fetchPage(pageParam), getNextPageParam})。乐观更新: useMutation 的 onMutate 中 setQueryData 先更新,onError 回滚,onSettled invalidateQueries。DevTools: 。