staleTime: 0
/ gcTime: 5
stale
하기 때문에 요청 시 마다 데이터를 계속 호출한다fresh
에서 stale
로 변경될 때 까지 남은 시간fresh
한 상태라면 저장된(캐싱된) 데이터가 다시 사용됨staleTime
이후 stale 상태로 변경됨inactive
상태일 때 캐싱된 상태로 남아있는 시간inactive
상태로 변경되며, 캐시는 cacheTime
만큼 유지된다.cacheTime
이 지나기 전에 쿼리 인스턴스가 다시 마운트 되면, 데이터를 fetch하는 동안 캐시 데이터를 보여준다.inactive
된 시점을 기준으로 캐시 데이터 삭제를 결정한다.실제 사용 예제
const {
isLoading,
error,
data,
isFetching,
} = useQuery({
queryKey: ['mainData', id],
queryFn: () => getMainData({ id: id }),
staleTime: 1000 * 20,
gcTime: 1000 * 60 * 2,
})
참고자료
https://velog.io/@yrnana/React-Query%EC%97%90%EC%84%9C-staleTime%EA%B3%BC-cacheTime%EC%9D%98-%EC%B0%A8%EC%9D%B4
https://velog.io/@juhyeon1114/React-Query-%EC%BA%90%EC%8B%B1-%EC%9B%90%EB%A6%AC-w.-staleTime-cacheTime-Lifecycle