Share
Sign In

React-Query

목차
공식문서
공식문서에 의하면 React-Query'React Application에서 서버 상태를 가져오고, 캐시하고, 동기화하고, 업데이트하는 작업을 수월하게 해주는 라이브러리' 이다.
React-query의 장점
여러가지 장점이 존재하지만, 가장 큰 것은 프론트 개발자가 일일히 구현 할 필요 없이 가져다쓰면 된다는 것이다.
서버 상태를 캐싱
Loading Flag, Error Flag 구현 필요성이 사라짐.
“데이터를 가져오는 중” 표시 또는 “에러 페이지”로 이동하는 로직 구현 할때 유용.
데이터가 오래되었다고 판단되면 다시 GET 한다. (invalidateQueries)
Devtool 제공, Api call한 이후 간단한 후처리 코드 작성 유용,
Option 으로 Polling, Pagination 지원
기본적인 사용방법
준비하기
react-query는 context api 처럼 provider를 감싸주어야 한다.
useQuery VS useMutation
useQuery : 서버의 상태를 가져올 때, 비동기 데이터 쿼리를 하는데 사용한다. (Read / GET)
useMutation : 서버의 데이터를 변경하고자 할 때 사용한다. (Create, Update, Delete / POST, PUT DELETE)
useQuery (서버 상태)
result가 포함하는 데이터 :
data : 쿼리가 성공적으로 끝났을 때, 서버에서 가져온 데이터.
error
isLoading : 현재 데이터를 가지고 오는 중 (true | false)
반복적으로 실행하는 상황에서, 처음 데이터를 가져와 isLoading이 false가 되면, 이후에는 상태가 변하지 않음. refetch를 하여도 상태는 변하지 않는다.
isFetching: 현재 데이터를 가지고 오는 중 (true | false) .
isLoading과는 다르게 refetch중에는 상태(true)가 바뀐다.
isError : 쿼리가 에러를 만났을 때, 상태가 true or false
isSuccess : 쿼리가 성공적으로 끝나면 true.
data를 사용할 수 있다.
반복적으로 실행하는 쿼리에서, 첫번째 실행이 끝나면 이후에 계속 true. 상태가 따로 변하지 않는다.
(자세한 return 값과 옵션은 공식문서 참고!)
useQueries
여러개의 쿼리를 동기적으로 보낼때 사용.
queryKey : 쿼리를 캐싱할 때, 사용하는 키.
queryFn : 쿼리를 날리는 함수.
onSuccess : 성공시 처리 함수
onError : 에러시 처리.
onSettled : 성공 실패 여부와 상관 없이 처리.
useMutation
useQuery는 컴포넌트가 렌더링 될 때 자동으로 요청이 시작된다.
하지만 useMutation은 특정 함수에서 원하는 시점에 직접 요청을 시작하는 형태로 작동한다.
mutate : 요청을 시작하는 함수.
옵션은 useQuery와 바슷하나, 몇가지 없는것이 존재한다.
React-query 도입시 유의할 점
isLoading 대신 isFetching
isLoading은 refetch시에 상태값이 변하지 않는다. 즉 로딩화면을 구현해야하는 상황에서, 처음 쿼리를 날리는 1회는 isLoading의 상태가 변하고 이후엔 상태가 유지된다.
isFetching을 사용하면 refetch 상황에서도 상태가 변하므로 반복적인 호출 상황에서도 유연하게 대처할 수 있다.
useMutation의 response
Create, Update, Delete하는 api를 useMutation을 사용하여 콜하게 되면, response의 data값을 알 수 없다. (데이터를 가져오고 싶다면 useQuery를 사용해야한다.)
그럼에도 불구하고 response가 필요하다면 mutateAsync 함수로 얻어올 수 있다.
mutateAsync 함수는 Promise를 리턴하고, 그 결과 값으로 response를 얻을 수 있다.
React 홈으로 돌아가기
React.js
메인으로 돌아가기
목차
공식문서
공식문서에 의하면 React-Query'React Application에서 서버 상태를 가져오고, 캐시하고, 동기화하고, 업데이트하는 작업을 수월하게 해주는 라이브러리' 이다.
React-query의 장점
여러가지 장점이 존재하지만, 가장 큰 것은 프론트 개발자가 일일히 구현 할 필요 없이 가져다쓰면 된다는 것이다.
서버 상태를 캐싱
Loading Flag, Error Flag 구현 필요성이 사라짐.
“데이터를 가져오는 중” 표시 또는 “에러 페이지”로 이동하는 로직 구현 할때 유용.
데이터가 오래되었다고 판단되면 다시 GET 한다. (invalidateQueries)
Devtool 제공, Api call한 이후 간단한 후처리 코드 작성 유용,
Option 으로 Polling, Pagination 지원
기본적인 사용방법
준비하기
react-query는 context api 처럼 provider를 감싸주어야 한다.
useQuery VS useMutation
useQuery : 서버의 상태를 가져올 때, 비동기 데이터 쿼리를 하는데 사용한다. (Read / GET)
useMutation : 서버의 데이터를 변경하고자 할 때 사용한다. (Create, Update, Delete / POST, PUT DELETE)
useQuery (서버 상태)
result가 포함하는 데이터 :
data : 쿼리가 성공적으로 끝났을 때, 서버에서 가져온 데이터.
error
isLoading : 현재 데이터를 가지고 오는 중 (true | false)
반복적으로 실행하는 상황에서, 처음 데이터를 가져와 isLoading이 false가 되면, 이후에는 상태가 변하지 않음. refetch를 하여도 상태는 변하지 않는다.
isFetching: 현재 데이터를 가지고 오는 중 (true | false) .
isLoading과는 다르게 refetch중에는 상태(true)가 바뀐다.
isError : 쿼리가 에러를 만났을 때, 상태가 true or false
isSuccess : 쿼리가 성공적으로 끝나면 true.
data를 사용할 수 있다.
반복적으로 실행하는 쿼리에서, 첫번째 실행이 끝나면 이후에 계속 true. 상태가 따로 변하지 않는다.
(자세한 return 값과 옵션은 공식문서 참고!)
useQueries
여러개의 쿼리를 동기적으로 보낼때 사용.
queryKey : 쿼리를 캐싱할 때, 사용하는 키.
queryFn : 쿼리를 날리는 함수.
onSuccess : 성공시 처리 함수
onError : 에러시 처리.
onSettled : 성공 실패 여부와 상관 없이 처리.
useMutation
useQuery는 컴포넌트가 렌더링 될 때 자동으로 요청이 시작된다.
하지만 useMutation은 특정 함수에서 원하는 시점에 직접 요청을 시작하는 형태로 작동한다.
mutate : 요청을 시작하는 함수.
옵션은 useQuery와 바슷하나, 몇가지 없는것이 존재한다.
React-query 도입시 유의할 점
isLoading 대신 isFetching
isLoading은 refetch시에 상태값이 변하지 않는다. 즉 로딩화면을 구현해야하는 상황에서, 처음 쿼리를 날리는 1회는 isLoading의 상태가 변하고 이후엔 상태가 유지된다.
isFetching을 사용하면 refetch 상황에서도 상태가 변하므로 반복적인 호출 상황에서도 유연하게 대처할 수 있다.
useMutation의 response
Create, Update, Delete하는 api를 useMutation을 사용하여 콜하게 되면, response의 data값을 알 수 없다. (데이터를 가져오고 싶다면 useQuery를 사용해야한다.)
그럼에도 불구하고 response가 필요하다면 mutateAsync 함수로 얻어올 수 있다.
mutateAsync 함수는 Promise를 리턴하고, 그 결과 값으로 response를 얻을 수 있다.
React 홈으로 돌아가기
React.js
메인으로 돌아가기
목차
공식문서
공식문서에 의하면 React-Query'React Application에서 서버 상태를 가져오고, 캐시하고, 동기화하고, 업데이트하는 작업을 수월하게 해주는 라이브러리' 이다.
React-query의 장점
여러가지 장점이 존재하지만, 가장 큰 것은 프론트 개발자가 일일히 구현 할 필요 없이 가져다쓰면 된다는 것이다.
서버 상태를 캐싱
Loading Flag, Error Flag 구현 필요성이 사라짐.
“데이터를 가져오는 중” 표시 또는 “에러 페이지”로 이동하는 로직 구현 할때 유용.
데이터가 오래되었다고 판단되면 다시 GET 한다. (invalidateQueries)
Devtool 제공, Api call한 이후 간단한 후처리 코드 작성 유용,
Option 으로 Polling, Pagination 지원
기본적인 사용방법
준비하기
react-query는 context api 처럼 provider를 감싸주어야 한다.
useQuery VS useMutation
useQuery : 서버의 상태를 가져올 때, 비동기 데이터 쿼리를 하는데 사용한다. (Read / GET)
useMutation : 서버의 데이터를 변경하고자 할 때 사용한다. (Create, Update, Delete / POST, PUT DELETE)
useQuery (서버 상태)
result가 포함하는 데이터 :
data : 쿼리가 성공적으로 끝났을 때, 서버에서 가져온 데이터.
error
isLoading : 현재 데이터를 가지고 오는 중 (true | false)
반복적으로 실행하는 상황에서, 처음 데이터를 가져와 isLoading이 false가 되면, 이후에는 상태가 변하지 않음. refetch를 하여도 상태는 변하지 않는다.
isFetching: 현재 데이터를 가지고 오는 중 (true | false) .
isLoading과는 다르게 refetch중에는 상태(true)가 바뀐다.
isError : 쿼리가 에러를 만났을 때, 상태가 true or false
isSuccess : 쿼리가 성공적으로 끝나면 true.
data를 사용할 수 있다.
반복적으로 실행하는 쿼리에서, 첫번째 실행이 끝나면 이후에 계속 true. 상태가 따로 변하지 않는다.
(자세한 return 값과 옵션은 공식문서 참고!)
useQueries
여러개의 쿼리를 동기적으로 보낼때 사용.
queryKey : 쿼리를 캐싱할 때, 사용하는 키.
queryFn : 쿼리를 날리는 함수.
onSuccess : 성공시 처리 함수
onError : 에러시 처리.
onSettled : 성공 실패 여부와 상관 없이 처리.
useMutation
useQuery는 컴포넌트가 렌더링 될 때 자동으로 요청이 시작된다.
하지만 useMutation은 특정 함수에서 원하는 시점에 직접 요청을 시작하는 형태로 작동한다.
mutate : 요청을 시작하는 함수.
옵션은 useQuery와 바슷하나, 몇가지 없는것이 존재한다.
React-query 도입시 유의할 점
isLoading 대신 isFetching
isLoading은 refetch시에 상태값이 변하지 않는다. 즉 로딩화면을 구현해야하는 상황에서, 처음 쿼리를 날리는 1회는 isLoading의 상태가 변하고 이후엔 상태가 유지된다.
isFetching을 사용하면 refetch 상황에서도 상태가 변하므로 반복적인 호출 상황에서도 유연하게 대처할 수 있다.
useMutation의 response
Create, Update, Delete하는 api를 useMutation을 사용하여 콜하게 되면, response의 data값을 알 수 없다. (데이터를 가져오고 싶다면 useQuery를 사용해야한다.)
그럼에도 불구하고 response가 필요하다면 mutateAsync 함수로 얻어올 수 있다.
mutateAsync 함수는 Promise를 리턴하고, 그 결과 값으로 response를 얻을 수 있다.
React 홈으로 돌아가기
React.js
메인으로 돌아가기
목차
공식문서
공식문서에 의하면 React-Query'React Application에서 서버 상태를 가져오고, 캐시하고, 동기화하고, 업데이트하는 작업을 수월하게 해주는 라이브러리' 이다.
React-query의 장점
여러가지 장점이 존재하지만, 가장 큰 것은 프론트 개발자가 일일히 구현 할 필요 없이 가져다쓰면 된다는 것이다.
서버 상태를 캐싱
Loading Flag, Error Flag 구현 필요성이 사라짐.
“데이터를 가져오는 중” 표시 또는 “에러 페이지”로 이동하는 로직 구현 할때 유용.
데이터가 오래되었다고 판단되면 다시 GET 한다. (invalidateQueries)
Devtool 제공, Api call한 이후 간단한 후처리 코드 작성 유용,
Option 으로 Polling, Pagination 지원
기본적인 사용방법
준비하기
react-query는 context api 처럼 provider를 감싸주어야 한다.
useQuery VS useMutation
useQuery : 서버의 상태를 가져올 때, 비동기 데이터 쿼리를 하는데 사용한다. (Read / GET)
useMutation : 서버의 데이터를 변경하고자 할 때 사용한다. (Create, Update, Delete / POST, PUT DELETE)
useQuery (서버 상태)
result가 포함하는 데이터 :
data : 쿼리가 성공적으로 끝났을 때, 서버에서 가져온 데이터.
error
isLoading : 현재 데이터를 가지고 오는 중 (true | false)
반복적으로 실행하는 상황에서, 처음 데이터를 가져와 isLoading이 false가 되면, 이후에는 상태가 변하지 않음. refetch를 하여도 상태는 변하지 않는다.
isFetching: 현재 데이터를 가지고 오는 중 (true | false) .
isLoading과는 다르게 refetch중에는 상태(true)가 바뀐다.
isError : 쿼리가 에러를 만났을 때, 상태가 true or false
isSuccess : 쿼리가 성공적으로 끝나면 true.
data를 사용할 수 있다.
반복적으로 실행하는 쿼리에서, 첫번째 실행이 끝나면 이후에 계속 true. 상태가 따로 변하지 않는다.
(자세한 return 값과 옵션은 공식문서 참고!)
useQueries
여러개의 쿼리를 동기적으로 보낼때 사용.
queryKey : 쿼리를 캐싱할 때, 사용하는 키.
queryFn : 쿼리를 날리는 함수.
onSuccess : 성공시 처리 함수
onError : 에러시 처리.
onSettled : 성공 실패 여부와 상관 없이 처리.
useMutation
useQuery는 컴포넌트가 렌더링 될 때 자동으로 요청이 시작된다.
하지만 useMutation은 특정 함수에서 원하는 시점에 직접 요청을 시작하는 형태로 작동한다.
mutate : 요청을 시작하는 함수.
옵션은 useQuery와 바슷하나, 몇가지 없는것이 존재한다.
React-query 도입시 유의할 점
isLoading 대신 isFetching
isLoading은 refetch시에 상태값이 변하지 않는다. 즉 로딩화면을 구현해야하는 상황에서, 처음 쿼리를 날리는 1회는 isLoading의 상태가 변하고 이후엔 상태가 유지된다.
isFetching을 사용하면 refetch 상황에서도 상태가 변하므로 반복적인 호출 상황에서도 유연하게 대처할 수 있다.
useMutation의 response
Create, Update, Delete하는 api를 useMutation을 사용하여 콜하게 되면, response의 data값을 알 수 없다. (데이터를 가져오고 싶다면 useQuery를 사용해야한다.)
그럼에도 불구하고 response가 필요하다면 mutateAsync 함수로 얻어올 수 있다.
mutateAsync 함수는 Promise를 리턴하고, 그 결과 값으로 response를 얻을 수 있다.
React 홈으로 돌아가기