개발자
쿼리를 refetch해준다는 것인가요? 정말 무슨말인지 정확히 의미전달이 안됩니다 쉽게 설명해주실 수 있나요?
답변 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
익명
작성자
2024년 01월 27일
정말 감사합니다 이해가 됐습니다
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!