
๋น๋๊ธฐ ํต์ ์ ์ํ ๋ฏธ๋ค์จ์ด
Redux-thunk์ ๋นํด
1. ์ฝ๋๋์ด ์ ๋ค. (๋ณด์ผ๋ฌ ํ๋ ์ดํธ)
2. ๋ด๊ฐ ๋ง๋ ๋ถ๋ถ์ด ์๋๊ธฐ ๋๋ฌธ์ ์๋ชป์ด ์ผ์ด๋๋ ๋ด ํ์ด ์๋๋ค!
3. ์ฌ์ฉ๋ฒ์ด ์ฝ๋ค!
๋ผ๋ ๊ฐ์ ์ด ์๋ค.
yarn add react-query
const App = () => {
return (
<QueryClientProvider client={queryClient}>
<Router />;
</QueryClientProvider>
);
};
์ต์์์ Query Client Provider๋ก ๊ฐ์ธ์ฃผ์ด ๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ ์ ์ฉ์ํจ๋ค.
src/api ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑ ํ api๋ฅผ ๊ด๋ฆฌํ todos.js๋ผ๋ ํ์ผ์ ๋ง๋ ๋ค.
import axios from "axios";
// ๋ชจ๋ todos๋ฅผ ๊ฐ์ ธ์ค๋ api
const getTodos = async () => {
const response = await axios.get(`์๋ฒ์ฃผ์`);
return response;
};
export { getTodos };
const { isLoading, isError, data } = useQuery("todos", getTodos);
React Query๋ isLoading๊ณผ isError์ ๋ฐ๋ผ ๋ณ๋์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋๊ธฐ์ํ ์ฒ๋ฆฌ์ ์ค๋ฅ ์ฒ๋ฆฌ์ ๋ํ ๋ถ๋ถ๋ ์์ฃผ ์ฝ๊ฒ ํด๊ฒฐ๋์ด ์๋ค.
๊ตฌ์กฐ๋ถํด๋ฅผ ํตํด ๋ถ๋ฌ์จ data๋ผ๋ ๋ณ์์๋ ์๋ฒ์ ์๋ ๋ฐ์ดํฐ ๊ฐ๋ค์ด ์ ์ฅ๋์ด ์๋ค.