React-Query
React app์์ ๋น๋๊ธฐ ๋ก์ง์ ์ฝ๊ฒ ๋ค๋ฃจ๊ฒ ํด์ฃผ๋ data fetching ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
"์ ์ญ ์ํ "๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ React ๋ฐ React-Native ์ฑ์์ ์๋ฒ์ ๊ฐ์ ํด๋ผ์ด์ธํธ์ ๊ฐ์ ธ์ค๊ณ ์บ์ํ๊ณ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ฉํ๋ฉด ์๋ฒ ์ํ์ ๊น๋ค๋ก์ด ๋ฌธ์ ์ ์ฅ์ ๋ฌผ์ ๊ทน๋ณตํ๊ณ ์ฑ ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ์๋ฅผ ์ ์ดํ๊ธฐ ์์ํ๊ธฐ ์ ์ ์ฑ ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
์ฌ์ฉํ๋ ์ด์
์๋ฒ๋ก ๋ถํฐ ๊ฐ์ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ ๋ฐ์ดํธ๋ฅผ ํ๋ ๋ก์ง์ store ๋ด๋ถ์ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ฉด store๋ ํด๋ผ์ด์ธํธ state๋ฅผ ์ ์งํด์ผํ๋๋ฐ, ์ด๋ ์๊ฐ๋ถํฐ ์๋ฒ ๋ฐ์ดํฐ์ ํด๋ผ์ด์ธํธ ๋ฐ์ดํฐ๊ฐ ๊ณต์กดํ๊ฒ ๋ฉ๋๋ค.(redux๊ฐ ๊ทธ๋ฌํจ..) ์ด๋ฐ ๋ถ๋ถ์ ๋ถ๋ฆฌํด์ ์ฌ์ฉํ๊ธฐ ์ํด์ ์๋๋ค.
์ฅ์
- ์บ์ฑ
- getํ ๋ฐ์ดํฐ์ ๋ํด์ update๋ฅผ ํ๋ฉด ์๋์ผ๋ก ๋ค์ get์ ์ํํฉ๋๋ค
- ๋ฐ์ดํฐ๊ฐ ์ค๋ ๋์๋ค๊ณ ํ๋จ๋๋ฉด ๋ค์ get ํฉ๋๋ค
- ๋์ผ ๋ฐ์ดํฐ ์ฌ๋ฌ๋ฒ ์์ฒญํ๋ฉด ํ๋ฒ๋ง ์์ฒญํฉ๋๋ค
- ๋ฌดํ ์คํฌ๋กค (Infinite Queries)
- ๋น๋๊ธฐ ๊ณผ์ ์ ์ ์ธ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค
- react-hook๊ณผ ์ฌ์ฉํ๋ ๊ตฌ์กฐ๊ฐ ๋น์ทํฉ๋๋ค
๊ธฐ๋ณธ ์ ํ
QueryClientProvider
- ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ์ต์๋จ์ ๊ฐ์ธ์ฃผ์ด์ผํ๋ค.
- ๊ทธ ๋ค์ ์ฌ์ฉํ ๊ณณ์์ ์ฟผ๋ฆฌ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ ์์ฑํด์ฃผ๋ฉด ๋๋ค.
import { QueryClient, QueryClientProvider } from "react-query";
const queryClient = new QueryClient();
export default function App() {
return (
<QueryClientProvider client={queryClient}>
<Home />
</QueryClientProvider>
);
}
useQuery
import { useQuery } from "react-query";
// ์ฃผ๋ก ์ฌ์ฉ๋๋ 3๊ฐ์ง return ๊ฐ ์ธ์๋ ๋ ๋ง์ return option๋ค์ด ์๋ค.
const { data, isLoading, error } = useQuery(queryKey, queryFn, options)
....๊ณ์~
https://react-query.tanstack.com/
https://techblog.woowahan.com/6339/
'๊ฐ๋ฐ > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React Testing Library ์ฌ์ฉํ๊ธฐ (from Scratch) - 1 (0) | 2022.04.29 |
---|---|
[React] ๋ค๊ตญ์ด ์ฒ๋ฆฌํ๊ธฐ - i18n ์ฌ์ฉํ๊ธฐ (0) | 2022.04.02 |
[React] React Custom Hooks (0) | 2022.03.23 |
[React] useEffect ์ useLayoutEffect ์ ์ฐจ์ด์ (0) | 2022.03.22 |
React vs Vue.js ์ฐจ์ด์ (0) | 2022.03.02 |