
다양한 프레임 워크에서 서버 상태를 관리하고 데이터 페칭을 간소화 하기 위한 라이브러리
데이터를 가져오기, 캐싱, 동기화, 업데이트 작업을 효율적으로 처리
StaleTime 및 cacheTime을 기반으로 관리Query
데이터를 가져오고 캐시 관리에 사용됨 useQuery 훅을 통해 사용 가능
const { data, isLoading, error } = useQuery(['todos'], fetchTodos);
Mutation
데이터를 업데이트 하거나 서버에 변경 요청을 보낼 때 사용됨 useMuation 훅을 통해 사용 가능
const mutation = useMutation(addTodo, {
onSuccess: () => queryClient.invalidateQueries(['todos']),
});
mutation.mutate(newTodo);
Query Keys
데이터를 고유하게 식별하는 키. 캐시 데이터를 구분하고 관리하기 위해 사용됨
useQuery(['user', userId], fetchUser);
Query Client
전역적으로 쿼리 상태를 관리하는 핵심 객체. 캐시 설정 및 무효화를 제어함
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
const queryClient = new QueryClient();
<QueryClientProvider client={queryClient}>
<App />
</QueryClientProvider>;
쿼리요청 → 캐시관리 → 자동갱신 (staleTime)