๊ฐœ๋ฐœ/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)๊ฐ€ ๋‹ค์‹œ ๋ฐฑ์—”๋“œ๋กœ ์š”์ฒญ๋จ → ์ตœ์‹  ์ƒํƒœ ๋ฐ˜์˜