개발자

react query에서 invalidateQueries가 쿼리를 무효화 한다는데 여기서 말하는 무효화를 이해를 못하겠네요

2024년 01월 24일조회 215

쿼리를 refetch해준다는 것인가요? 정말 무슨말인지 정확히 의미전달이 안됩니다 쉽게 설명해주실 수 있나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

인기 답변

김하림님의 프로필 사진

refetch를 하는 게 맞습니다. 다만, invalidateQueries는 일반 refetch와 다르게 똑똑하게 리패칭을 합니다. invalidateQueries는 활성화(active)된 쿼리를 찾아서 refetch를 합니다. 일반 refetch는 활성화/비활성화(inactive) 상관없이 무조건 refetch를 합니다. 비활성화된 쿼리는 해당 쿼리가 어느 컴포넌트에서도 쓰이고 있지 않는 상태를 의미합니다. 활성화된 쿼리만 refetch를 하면 아무래도 필요한 네트워크 요청만 서버에 요청하므로 트래픽을 아낄 수 있겠죠? 참고로, invalidate(무효화)라는 이름이 붙은 이유는 refetch를 하기 전에 쿼리를 만료(stale) 상태로 만드는 작업이 추가적으로 붙기 때문입니다. 설명을 듣는 것보다 실제 코드를 보면서 내용을 따라가보시는 걸 추천드립니다. 함수 내용을 보면 실제 코드는 18줄밖에 되지 않아서, 코드를 보고 어떤 동작을 하고 있는지 느낌만 파악하셔도 도움이 되실겁니다. https://github.com/TanStack/query/blob/main/packages/query-core/src/queryClient.ts#L250C3-L268

profile picture

익명

작성자

2024년 01월 27일

정말 감사합니다 이해가 됐습니다

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!