본문 바로가기
카테캠/2단계

[7/22] React Query - queryClient

by 쪼꼬에몽 2025. 7. 22.

queryClient: 전역에서 쿼리 상태를 직접 제어

- QueryClientProvier를 통해 등록되고, 내부에 있는 데이터 캐시, 상태 등을 수동으로 조작

- 캐시 읽기, 쓰기, 무효화, 제거 등 

import { useQueryClient } from '@tanstack/react-query';

const queryClient = useQueryClient();

getQueryData(key) : 캐시된 데이터 반환

const queryClient = useQueryClient();
const cachedData = queryClient.getQueryData(['user']);

setQueryData(key, data) : 캐시 값 수동 설정

queryClient.setQueryData(['cart'], (old) => ({
	...old,
    items: [...old.items, newItem],
}));

invalidateQueries(key) : 해당 쿼리를 무효화(stale) 처리하여 자동 refetch 유도

queryClient.invalidateQueries(['user']);

removeQueires(key) : 캐시 제거

queryClient.removeQueries(['user']);

refetchQueries(key) : 강제 refetch

 

등록 버튼 클릭 시 목록 업데이트

const queryClient = useQueryClient();

const mutation = useMutation({
	mutationFn: createPost,
    onSuccess: () => {
    	queryClient.invalidateQueries(['posts']); // 리스트 다시 불러오기
    },
});

<button onClick={() => mutation.mutate({ title: 'New' })}>
	등록하기
</button>

 

'카테캠 > 2단계' 카테고리의 다른 글

[7/22] useMutation으로 바꾸기  (0) 2025.07.23
[7/23] Suspense & ErrorBoundary  (3) 2025.07.23
[7/22] React Query - useMutation  (1) 2025.07.22
[7/22] React Query - useQuery  (0) 2025.07.22
[7/22] React Query  (1) 2025.07.22