서버 상태를 fetching, caching, synchronizing, updating 하는 것을 도와주는 라이브러리
StaleTime 동안 Fresh Data로 유지됩니다.useQuery : 서버에서 데이터를 읽어옵니다.data, error, isLoading, isFetching const { data, isLoading, error } = useQuery('queryKey', fetchDataFunction);
invalidateQueries: 해당 쿼리 키의 캐시를 무효화하고 데이터를 다시 가져옵니다queryClient.invalidateQueries('dataQuery');
useMutation: 데이터 생성, 업데이트, 삭제 등 서버의 데이터를 변경합니다.const mutation = useMutation(newData => axios.post('/data', newData), {
onSuccess: () => {
queryClient.invalidateQueries('dataQuery');
},
});
setQueryData: 쿼리 데이터를 직접 수정하거나 업데이트합니다.queryClient.setQueryData('dataQuery', updatedData);
enabled: 쿼리 실행을 조건부로 관리합니다.retry: 실패한 쿼리를 재시도합니다.cacheTime: 데이터가 inactive 상태이고 cacheTime에 도달하면 gc에 의해 삭제됩니다.