캐싱
useQuery를 사용하여 쿼리된 데이터는 "trending"이라는 키로 명명되어 React Query 캐시에 저장된다. 캐시에 저장된 데이터를 불러 사용할수 있고 변형시킬 수도 있다.
const { isLoading: trendingLoading, data: trendingData } = useQuery(
"trending",
moviesAPI.treding
);
만약 같은 화면에 위와 같은 동일한 쿼리를 사용했다면, react query 는 다시 fetch 하지 않고 캐시에서 데이터를 가져온다.
동일한 쿼리를 다른 컴포넌트에서 사용했다면 역시나 fetch가 다시 일어나지 않고 캐시에서 가져온다.
어떤 쿼리를 동일한 쿼리로 취급하고 또는 다른 쿼리로 취급한다는 말인가!
// 동일한 것으로 간주되는 쿼리들
useQuery(['todos', { status, page }], ...)
useQuery(['todos', { page, status }], ...)
useQuery(['todos', { page, status, other: undefined }], ...)
// 서로 다른 쿼리로 취급됨
useQuery(['todos', status, page], ...)
useQuery(['todos', page, status], ...)
useQuery(['todos', undefined, page, status], ...)
쿼리 키가 같더라도, Array안의 순서가 다르다면 다른 쿼리로 간주하고 새로 fetch 한다.
728x90
'개발로그 > ReactNative' 카테고리의 다른 글
처음부터 해보는 npx react-native init AwesomeProject with ios 세팅! 나만의 프리셋 (0) | 2023.01.30 |
---|---|
**BUILD FAILD** xcode_env_generator 를 생성시키는 버전으로 expo-modules-autolinking 의 버전을 맞춰보자. (0) | 2023.01.29 |
React Query 에서 모든 캐쉬된 쿼리에 권한을 갖는 QueryClient 사용법 그리고 개념정리 (0) | 2023.01.27 |
CRNA로 만들어진 사이드프로젝트 Netflify 앱- Movies 화면 스냅샷 (0) | 2023.01.26 |
React Query 를 사용해보자. : useQuery (0) | 2023.01.25 |
리스트를 표현하는 ScrollView VS FlatList 어느것을 써야하는가. (0) | 2023.01.24 |
** BUILD FAILED ** Unable to find expo in this project - have you run yarn / npm install yet? (0) | 2023.01.23 |
** BUILD FAILED ** SDK "iphoneos" cannot be located 해결방법 (xcode 설정 포함) (0) | 2023.01.22 |
댓글