Diary

[개발일기] 리액트 쿼리(enabled)

브라더 코드 2023. 6. 13. 11:42

(2023.06.02) 간단하게 한가지라도 알면 기록하자.

리액트 쿼리는 현재 FE진영에서 서버 데이터를 땡겨올때 가장 많이 쓰이는 라이브러리다.

vercel에서 만든 swr도 많이 쓰는데 리액트 쿼리와 차이점은 이 enabled 속성이 없는 것이다.

리액트쿼리를 get방식으로 쓸때 useQuery를 이용한다. 인자는 세개를 받는다.

쿼리 키, 쿼리 함수, 마지막 인자는 옵션 객체인데 거기서 enabled 속성이 있다.

useQuery(queryKey, queryFn, optionObj);

{

  enabled: true;

}

언제 쓰느냐,

'자동으로 실행되는 걸 막을때'이다.

값이 false일땐 쿼리 함수가 실행되지 않는다.

그래서 비동기 함수가 여러개이고 동기적으로 실행해야할 때 쓰인다.

아래 예시가 있다. 첫번째 useQuery의 결과값으로 userData가 들어오지 않으면(true가 아니면)

두번째 useQuery가 실행되지 않는다.

const { data: userData } = useQuery(queryKey, queryFn1, optionObj);

const { data } = useQuery(queryKey, queryFn2, { enabled: !!userData })

또 경우에 따라 특정 데이터를 flag로 설정할 수도 있을 것이다.

 

끝.