[React-Query] @tanstack/react-query
์นดํ
๊ณ ๋ฆฌ : Development
ํ๊ทธ: reactquery · react-query ํ์ต · React Query · tanstack/react-query · React Query ๊ธฐ๋ฅ · React Query ์ค์
ํ๊ทธ: reactquery · react-query ํ์ต · React Query · tanstack/react-query · React Query ๊ธฐ๋ฅ · React Query ์ค์
1. React Query
**์๋ฒ ์ํ ๊ฐ์ ธ์ค๊ธฐ
,ย์บ์ฑ
,ย๋๊ธฐํ ๋ฐ ์ ๋ฐ์ดํธ
๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ**- ๊ธฐ์กด ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํด๋ผ์ด์ธํธ ์์ ์ ์ ํฉํ์ง๋ง ๋น๋๊ธฐ(redux-saga ๋ฑ) ๋๋ ์๋ฒ ์ํ ์์ ์ ์ข์ง ์๋ค๊ณ ํ๋ค
- ํด๋ผ์ด์ธํธ ์ํ(
Client State
)์ ์๋ฒ ์ํ(Server State
)๋ ์์ ํ ๋ค๋ฅธ ๊ฐ๋ ์ด๋ฉฐ, ํด๋ผ์ด์ธํธ ์ํ๋ ๊ฐ๊ฐ์ input ๊ฐ์ผ๋ก ์๋ฅผ ๋ค ์ ์๊ณ , ์๋ฒ ์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ค
1) ๊ธฐ๋ฅ
- ์บ์ฑ
- ๋์ผํ ๋ฐ์ดํฐ์ ๋ํ ์ค๋ณต ์์ฒญ์ ๋จ์ผ ์์ฒญ์ผ๋ก ํตํฉ
- ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ค๋๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ
- ๋ฐ์ดํฐ๊ฐ ์ผ๋ง๋ ์ค๋๋์๋์ง ์ ์ ์๋ค.
- ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ๋ฅํ ๋น ๋ฅด๊ฒ ๋ฐ์
- ํ์ด์ง๋ค์ด์ ๋ฐ ๋ฐ์ดํฐ ์ง์ฐ ๋ก๋์ ๊ฐ์ ์ฑ๋ฅ ์ต์ ํ
- ์๋ฒ ์ํ์ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๊ฐ๋น์ง ์์ง ๊ด๋ฆฌ
- ๊ตฌ์กฐ ๊ณต์ ๋ฅผ ์ฌ์ฉํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ๋ฉ๋ชจํ
2) ๊ธฐ๋ณธ ์ค์
import { QueryClient } from "@tanstack/react-query";
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: Infinity,
// ...
},
},
});
- QueryClient๋ฅผ ์ฌ์ฉํย
์บ์
์ ์ํธ ์์ฉ ๊ฐ๋ฅ - QueryClient์์ ๋ชจ๋ ย
query
ย ๋๋ยmutation
์ ๊ธฐ๋ณธ ์ต์ ์ ์ถ๊ฐํ ์ ์๋ค
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
const queryClient = new QueryClient({ /* options */});
function App() {
return (
<QueryClientProvider client={queryClient}>
<NavigationContainer>
<AppInner />
</NavigationContainer>
</QueryClientProvider>;
);
}
- react-query๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ย
QueryClientProvider
๋ฅผ ์ต์๋จ์์ ๊ฐ์ธ์ฃผ๊ณ ยQueryClient
ย ์ธ์คํด์ค๋ฅผ client props๋ก ๋ฃ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฐ๊ฒฐ - QueryClientProvider๋ก ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ธ๊ณ , client props์๋ค queryClient๋ฅผ ์ฐ๊ฒฐํจ์ผ๋ก์จ, ์ด context๋ ์ฑ์์ ๋น๋๊ธฐ ์์ฒญ์ ์์์ ์ฒ๋ฆฌํ๋ย
background
ย ๊ณ์ธต์ด ๋