1. invalidateQueries 기본 개념

invalidateQueries는 캐시된 쿼리를 stale(오래된) 상태로 표시하며, **활성 상태(active)**인 경우에는 **즉시 백그라운드에서 재요청(fetch)**을 수행합니다 github.com+15tanstack.com+15tanstack.com+15.

예시:

queryClient.invalidateQueries({ queryKey: ['todos'] })
// 'todos' 또는 'todos', 어떤 추가 파라미터 키까지 모두 stale 상태가 됩니다.

2. 정확한(matching) 키 무효화

exact: true 옵션을 쓰면 queryKey가 완전히 일치할 때만 무효화합니다 tanstack.com+8tanstack.com+8tanstack.com+8.

예:

queryClient.invalidateQueries({
  queryKey: ['event-info', String(eventId)],
  exact: true
})

3. 한 번에 여러 쿼리 무효화 방법

🅰️ 개별 호출 방식:

queryClient.invalidateQueries(['search-list'])
queryClient.invalidateQueries(['user-favorites'])
queryClient.invalidateQueries(['event-info', String(eventId)])

🅱️ predicate 방식:

queryClient.invalidateQueries({
  predicate: (query) =>
    ['search-list', 'user-favorites', 'event-info0'].includes(query.queryKey[0])
})

└ 이름만 기준으로 여러 키를 한번에 필터 처리 .


4. Mutation 후 자동 무효화 예시

React Query 공식 예제에서 자주 나타나는 패턴입니다 tanstack.com+10tanstack.com+10tanstack.com+10:

useMutation({
  mutationFn: addTodo,
  onSuccess: () => {
    queryClient.invalidateQueries({ queryKey: ['todos'] })
    queryClient.invalidateQueries({ queryKey: ['reminders'] })
  }