다만 순서상 useMutation의 옵션 콜백이 먼저 실행되고 mutate의 옵션 콜백이 실행된다. 따라서 컴포넌트가 unmount되면 옵션 콜백이 실행되지 않는다.
mutateAsync
mutate와 비슷하나, promise를 반환한다.
쿼리 무효화(Invalidation)
쿼리 데이터가 stale 상태로 바뀌기를 기다릴 수만은 없는 경우가 있다. 예를 들어 게시글에 댓글을 작성한 후에는 서버에서 댓글 목록을 다시 가져올 필요가 있다. 이와 같은 경우에는 지정한 staleTime이 지나기 전에 직접 쿼리를 무효화해서 데이터를 새로 가져오도록 해야 한다.
const queryClient = useQueryClient();
// 캐시에 있는 모든 쿼리를 무효화한다.
queryClient.invalidateQueries()
// posts로 시작하는 모든 쿼리를 무효화한다. ex) ['posts', 1], ['todos', 2], ...
queryClient.invalidateQueries('posts')
// ['todos', 1] 키를 가진 쿼리를 무효화한다.
queryClient.invalidateQueries(['posts', 1])