TanStack Query

양동규·2024년 8월 8일

개념 정리

목록 보기
13/17

TanStack Query: 데이터 페칭과 상태 관리, 사용자 인터랙션 처리 등을 효율적으로 수행할 수 있게 함

TanStack Query의 useQuery 훅을 사용하여 서버에서 데이터를 가져오고 이를 컴포넌트에 제공

useQuery훅은 queryKey와 queryFn 두 개의 주요 속성이 팔요

  • queryKey: 쿼리를 식별하는 데 사용
    여기서는 ['Users']를 사용하여 사용자 데이터를 식별
  • queryFn: 실제로 데이터를 페칭하는 비동기 함수
    여기서는 getUserData 함수를 사용
  • enabled: !!id는 id가 유효할 때만 쿼리를 실행하도록 설정

if (isLoading) return

Loading...
;
if (error) {
return
Error: {error.message}
;
}

isLoading과 error를 사용하여 데이터를 로딩 중이거나 에러가 발생했을 때 사용자에게 적절한 피드백을 제공

TanStack Query의 useMutation 훅을 사용하여 데이터를 변경

  • mutationFn: 데이터를 업데이트하는 비동기 함수
    여기서는 changeUserType 함수를 사용하여 사용자 유형을 변경
  • onMutate: 뮤테이션이 실행되기 전에 실행되는 함수
    쿼리를 취소하고 이전 데이터를 저장하며, 낙관적 업데이트를 수행
  • onError: 뮤테이션이 실패했을 때 실행되며, 이전 데이터를 복원
  • onSettled: 뮤테이션이 성공하거나 실패한 후 실행되며, 관련 쿼리를 무효화하여 데이터를 다시 가져옴

사용자 유형변경


버튼을 클릭하면 mutation.mutate가 호출되어 changeUserType 함수가 실행
이 과정에서 사용자 유형이 변경되고, 관련된 쿼리가 무효화되어 업데이트된 데이터를 다시 가져오게 됨

useQuery: 데이터를 가져오고, 로딩 및 에러 상태를 관리하며, 데이터의 최신 상태를 유지

useMutation: 데이터를 변경하고, 낙관적 업데이트 및 에러 처리를 통해 사용자 경험을 향상

0개의 댓글