카테고리 없음
리액트쿼리
Lim임
2025. 12. 12. 02:55
백엔드 응답에 대한 데이터를 관리해주는 친구
요청을 캐싱 동기화 업데이트
왜 쓰냐?
기존방식) useEffect + axios


1. 로딩,에러 직접 관리
2. 동일 페이지 재방문 시 데이터 매번 새로 요청
3. 캐싱 없음
4. 리패치 타이밍
사용해보자

1) QueryClient & Provider 설정
// main.tsx
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
const queryClient = new QueryClient();
createRoot(document.getElementById("root")!).render(
<QueryClientProvider client={queryClient}>
<App />
</QueryClientProvider>
);
1. 백엔드 부담이 줄어든다.
2. 로딩이 빠르다
쿼리 키= 데이터의 이름을 지정하는 거라
쿼리키가 지정하면 하나로 날아감
쿼리키는 이름을 뭘로 지정할까?
페이지 이름으로 지정하는 게 좋음
filter검색

staleTime 몇초가 지나가면 또 호출시키겠다는뜻
쿼리 키 스테일 타임은 많이 나옴
리패치 -> 폴링 구현
쿼리 인벨리데이트 -> 캐싱 무효화
refetchOnWindowFocus
윈도우 포커스 나갔다 들어오면 리패치 되는거 막는 기능
Mutations 생성, 수정할 때 쓴다
post put emfdmf
onSuccess

무한 스크롤
페이지네이션과 다름