๊ฐ๋ฐ/React
React - useQueryClient(). invalidateQueries
hanks
2025. 6. 8. 17:29
๐งผ queryClient.invalidateQueries๋?
React Query์ queryClient.invalidateQueries()๋ ํน์ queryKey์ ํด๋นํ๋ ์บ์๋ฅผ ๋ฌดํจํํ์ฌ useQuery๊ฐ ์๋์ผ๋ก ๋ค์ ๋ฐ์ดํฐ๋ฅผ fetch ํ๊ฒ ๋ง๋๋ ํจ์์ ๋๋ค.
const queryClient = useQueryClient()
queryClient.invalidateQueries({ queryKey: ["commCodeList"] })
๐ ํจ๊ณผ
- ํด๋น queryKey๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ useQuery๊ฐ ์๋์ผ๋ก ์ฌ์คํ๋จ
- ์๋ฒ์์ ์ต์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๊ฐ์ ธ์ค๊ฒ ๋จ
- ๋ก๋ฉ ์คํผ๋ ํ์, ์บ์ ์ ๋ฐ์ดํธ ์๋ ์ฒ๋ฆฌ
๐ฏ ์ฃผ์ ์ต์
- queryKey: ์ด๋ค ์ฟผ๋ฆฌ๋ฅผ ๋ฌดํจํํ ์ง ์ง์ (๋ฐฐ์ด ํํ)
- exact: ์ ํํ ์ผ์นํ๋ ํค๋ง ๋ฌดํจํํ ์ง ์ฌ๋ถ (true ์ค์ ์ ["user"]๋ ["user", 1]๊ณผ๋ ๋ณ๊ฐ)
โ ์ ์ฐ๋๊ฐ?
- React Query๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ ์ฅํจ
- ํ์ง๋ง ์ฌ์ฉ์๊ฐ ์ด๋ค ํ๋์ ํ๋ฉด (ex. ์ฝ๋ ์ถ๊ฐ/์ญ์ ), ์ด ์บ์๋ ๋ ์ด์ ์ต์ ์ด ์๋ ์ ์์
- ์ด๋ด ๋ invalidateQueries๋ฅผ ์ฐ๋ฉด ํด๋น ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ค์ ๊ฐ์ ธ์์ ์ต์ ์ํ๋ก ์ ์ง
โ ์ธ์ ์ฐ๋๊ฐ?
- ์ ์ฅ/์ญ์ /์์ ํ ๋ชฉ๋ก์ ๋ค์ ๋ถ๋ฌ์ค๊ณ ์ถ์ ๋
- "์๋ก๊ณ ์นจ" ๋ฒํผ ํด๋ฆญ ์ ๊ฐ์ ๋ฐ์ดํฐ ์ฌ์์ฒญํ ๋
โ ๋ฐฑ์๋ API์์ ๊ด๊ณ
- invalidateQueries๋ ์ง์ ๋ฐฑ์๋ ํธ์ถ์ ํ์ง ์์
- ๋์ ํด๋น queryKey๋ฅผ ๊ฐ์ง useQuery๋ฅผ ์๋์ผ๋ก ๋ค์ ์คํ์ํด
- ์ด ๋ useQuery๊ฐ ํธ์ถํ๋ API (queryFn)๊ฐ ๋ค์ ๋ฐฑ์๋๋ก ์์ฒญ๋จ → ์ต์ ์ํ ๋ฐ์