๋ชฉ๋กreactQuery (4)
๐ค ์์งlog ๐ค
๐ฃ QueryClient react-query๋ฅผ ํ๋ก์ ํธ์ ์ ํ ํ ๋, ๊ฐ์ฅ ๋จผ์ ํ๋ ๊ฒ์ ์ฑ์ ์ต์์์์ QueryClientProvider๋ก ์ฐ๋ฆฌ์ ์ฑ์ ๊ฐ์ธ์ฃผ๋ ์ผ์ด๋ค. import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; ... const queryClient = new QueryClient(); // ์๋ก์ด QueryClient์ธ์คํด์ค๋ฅผ ์์ฑ function Root() { return ( ); // QueryClientProvider๋ฅผ ํตํด ์ฑ ์ ์ฒด์์ ์์ฑํ QueryClient์ ์ ๊ทผ ๊ฐ๋ฅ } ์ฐ๋ฆฌ๋ ๋จผ์ ์๋ก์ด QueryClient์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , QueryClientProvider๋ฅผ ํตํด ์ฑ ์ ์ฒด์์ ์..
React๋ก ๋ง๋ ํ๋ก ํธ์์, axios๋ฅผ ํตํด nodeJS๋ก ๋ง๋ api๋ฅผ ์์ฒญํ์ฌ crud ๋ฅผ ๊ตฌํํด๋ณด๋ ค๊ณ ํ๋ค. openAPI๋ฅผ ํตํด ์ฐ์ตํด๋ณด๋ ค๊ณ ํ๋๋ฐ ์ด๊ฒ์ ๊ฒ ๋คํด๋ณด๊ธฐ์๋ ํ๊ณ๊ฐ ์์ด์ ,, api๋ฅผ ๋ง๋ค์ด๋ณด๊ธฐ๋ก ํ์๊ณ TDD ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ nodeJS๋ก ๊ตฌํํด๋ณด์๋ค !_! reactQuery ์ฐ์ตํ๋ ค๊ณ ๋ง๋ค๊ธฐ ์์ํ๊ฑฐ์๊ณ , ํด๋ณด๋ฉด์๋ ๋๋๊ฑฐ์ง๋ง ๊ณ์ํด์ ์ฌ์ฉํด๋ณด๊ณ ๊ณ์ ๊ณต๋ถํด์ผ๊ฒ ๋ค๊ณ ๋๋๋ถ๋ถ์ด ๋ง์๋ค. ํด๋ดค๋๊ฒ๋ค๋ ์ฌ์ฉ์ํ๋ค๋ณด๋ ์์ด๋ฒ๋ฆฌ๊ณ ์ค์ํ๋ ๋ถ๋ถ์ด ๋ง์๋น ๐ซ ๊ทธ๋๋ ํ๊ณ ๋๋ ๋ฟ-๋ฏ '-'b ๐ค๐ค ์๋ฌด๋ ์๊ถ๊ธํดํ๊ฒ ์ง๋ง ๋จ๊ฒจ๋ณด๋ ์ฝ๋โค๏ธ : ๋๋ณด๊ธฐ https://github.com/Amy-Eunji/nodejs https://github.com/Amy-Eunji/react-crud
React-Query๋? ๐๐ป React Query๋ React Application์์ ์๋ฒ ์ํ๋ฅผ ๋ถ๋ฌ์ค๊ณ , ์บ์ฑํ๋ฉฐ, ์ง์์ ์ผ๋ก ๋๊ธฐํํ๊ณ ์ ๋ฐ์ดํธํ๋ ์์ ์ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. React-Query์ ์ฅ์ โ๏ธ React ์ดํ๋ฆฌ์ผ์ด์ ๋ด์์ ๋ฐ์ดํฐ ํจ์นญ, ์บ์ฑ, ๋๊ธฐ์ , ๊ทธ๋ฆฌ๊ณ ์๋ฒ์ ์ํ์ ์ ๋ฐ์ดํธ๋ฅผ ์ข ๋ ์ฉ์ดํ๊ธฐ ์ํด ๋ง๋ค์ด์ค๋ค. โ๏ธ ๊ธฐ์กด์๋ ์ง์ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ๋ค์ ๋ณ๋์ ์ต์ ์ผ๋ก ์ง์ํ์ฌ ๋ณต์กํ๊ณ ์ดํดํ ์ ์๋ ์๋ง์ ์ฝ๋๋ฅผ ๋์ React-Query ๋ก์ง์ ํตํด ์งง์ ์ฝ๋๋ก ๋์ฒดํ ์ ์๊ฒ ๋์๋ค. โ๏ธ ํ๋ก์ ํธ ๊ตฌ์กฐ๊ฐ ๊ธฐ์กด๋ณด๋ค ๋จ์ํด์ ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ง ๋ณด์ํ๊ธฐ ์ฝ๊ณ , ์๋ก์ด ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋ค. ๊ทธ ์ธ์๋ ๋ง์ ์ฅ์ ์ด ์๋ค. → useQuery, useM..
// Main.tsx import { useEffect, useState } from "react"; import styled from "styled-components"; import { useQuery } from "react-query"; import Pagination from "../templates/Pagination"; const Main = () => { // const [post, setPost] = useState([]); const [totalPosts, setTotalPosts] = useState(10); // ํ์ด์ง ๋น ๊ฒ์๋ฌผ ์ const [page, setPage] = useState(1); // ํ์ฌ ํ์ด์ง ๋ฒํธ const offset = (page - 1) * totalP..