React Query
리액트에서 비동기 로직을 리액트스럽게 다룰 수 있게 해주는 라이브러리
서버 상태 관리를 위해 이 라이브러리를 사용
데이터 조회, 캐싱, isLoading, isError등 과 같은 기존 작업을 더욱이 편리하게 제공
QueryClientProvider
=> 초기 작업이라고도 할 수 있음
리액트 쿼리 사용을 위해 최상단에서 QueryClientProvider을 사용해 감싼다.
쿼리 인스턴스 생성 후 client={queryClient}작성
위의 해당하는 내용을 담은 코드
import { AlertContextProvider } from '@contexts/AlertContext'
import { QueryClient, QueryClientProvider } from 'react-query';
const client = new QueryClient({
defaultOptions: {},
})
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
);
root.render(
<React.StrictMode>
<Global styles={globalStyles} />
<QueryClientProvider client={client}>
<AlertContextProvider>
<App />
</AlertContextProvider>
</QueryClientProvider>
</React.StrictMode>
);
QueryClient인스턴스를 생성해 프로젝트 루트 등록, useQuery자체 훅을 사용해 데이터를 조회 및 캐싱
UseQuery
import { useQuery } from "react-query";
function AdBanners() {
const { data } = useQuery(['adBanners'], () => getAdBanners())
return (
QueryKey : useQuery의 첫번째 인자
useQuery 훅에서 사용하는 첫 번째 인자는 queryKey, uniqueKey이다. (쿼리를 지칭할 이름)
queryKey는 React Query가 캐시와 관련된 데이터를 구분하고 관리하는 데 사용
key로는 sring과 배열이 전달 가능
그러니까 위의 코드에서는 adBanners가 queryKey이다.
Query Functions : useQuery의 두번째 인자(fetcher함수)
promise를 반환하는 함수를 넣어야함
api호출 함수 전달
주의할점
(querykey를 고유하게 만들 것 )
밑에 블로그가 설명 잘해놔서 참고하려고 가져옴 !
https://fe-developers.kakaoent.com/2023/230720-react-query/
React Query의 구조와 useQuery 실행 흐름 살펴보기 | 카카오엔터테인먼트 FE 기술블로그
함성준(kevin) 개발에는 인생(喜怒哀樂)이 담겨있습니다. 커피 좋아합니다.
fe-developers.kakaoent.com
'FE > REACT' 카테고리의 다른 글
[React] UseInfiniteQuery와 관련된 내용 정리 (1) | 2024.09.03 |
---|---|
[PJ] BrowserRouter, Routes,Route 간단 정리 (0) | 2024.08.28 |
[REACT]0105 (0) | 2024.01.05 |
[REACT]0103 (0) | 2024.01.05 |
[REACT]0102 (2) | 2024.01.02 |