[React] React-Query ๋ž€?

2022. 3. 28. 17:48ยท ๊ฐœ๋ฐœ/React
๋ชฉ์ฐจ
  1. React-Query
728x90
๋ฐ˜์‘ํ˜•

React-Query

React app์—์„œ ๋น„๋™๊ธฐ ๋กœ์ง์„ ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๊ฒŒ ํ•ด์ฃผ๋Š” data fetching ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. 

"์ „์—ญ ์ƒํ…Œ"๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ ๋„ React ๋ฐ React-Native ์•ฑ์—์„œ ์„œ๋ฒ„์˜ ๊ฐ’์„ ํด๋ผ์ด์–ธํŠธ์— ๊ฐ€์ ธ์˜ค๊ณ  ์บ์‹œํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„ ์ƒํƒœ์˜ ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ์™€ ์žฅ์• ๋ฌผ์„ ๊ทน๋ณตํ•˜๊ณ  ์•ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์•ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋Š” ๋กœ์ง์„ store ๋‚ด๋ถ€์— ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋ฉด store๋Š” ํด๋ผ์ด์–ธํŠธ state๋ฅผ ์œ ์ง€ํ•ด์•ผํ•˜๋Š”๋ฐ, ์–ด๋А ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ์™€ ํด๋ผ์ด์–ธํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต์กดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.(redux๊ฐ€ ๊ทธ๋Ÿฌํ•จ..) ์ด๋Ÿฐ ๋ถ€๋ถ„์„ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์”๋‹ˆ๋‹ค. 

 

์žฅ์ 

  • ์บ์‹ฑ
  • getํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ update๋ฅผ ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์‹œ get์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค 
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๋ž˜ ๋˜์—ˆ๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด ๋‹ค์‹œ get ํ•ฉ๋‹ˆ๋‹ค
  • ๋™์ผ ๋ฐ์ดํ„ฐ ์—ฌ๋Ÿฌ๋ฒˆ ์š”์ฒญํ•˜๋ฉด ํ•œ๋ฒˆ๋งŒ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค 
  • ๋ฌดํ•œ ์Šคํฌ๋กค (Infinite Queries)
  • ๋น„๋™๊ธฐ ๊ณผ์ •์„ ์„ ์–ธ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • react-hook๊ณผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค

 

 

 

 

๊ธฐ๋ณธ ์…‹ํŒ…

QueryClientProvider 

  • ๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ตœ์ƒ๋‹จ์— ๊ฐ์‹ธ์ฃผ์–ด์•ผํ•œ๋‹ค. 
  • ๊ทธ ๋‹ค์Œ ์‚ฌ์šฉํ•  ๊ณณ์—์„œ ์ฟผ๋ฆฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ–‰์„œ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 
import { QueryClient, QueryClientProvider } from "react-query";

const queryClient = new QueryClient();

export default function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <Home />
    </QueryClientProvider>
  );
}

 

 

 

useQuery

import { useQuery } from "react-query";
// ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ return ๊ฐ’ ์™ธ์—๋„ ๋” ๋งŽ์€ return option๋“ค์ด ์žˆ๋‹ค. 
const { data, isLoading, error } = useQuery(queryKey, queryFn, options)

์˜ต์…˜๋ณด๋Ÿฌ๊ฐ€๊ธฐ 

 

 

 

 

 

....๊ณ„์†~ 

 

 

 

https://react-query.tanstack.com/

 

React Query

Hooks for fetching, caching and updating asynchronous data in React

react-query.tanstack.com

 

https://techblog.woowahan.com/6339/

 

Store์—์„œ ๋น„๋™๊ธฐ ํ†ต์‹  ๋ถ„๋ฆฌํ•˜๊ธฐ (feat. React Query) | ์šฐ์•„ํ•œํ˜•์ œ๋“ค ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

์˜ค๋Š˜์€ ์ฃผ๋ฌธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” FE ํ”„๋กœ๋•ํŠธ์˜ ๊ตฌ์กฐ ๊ฐœํŽธ์„ ์ค€๋น„ํ•˜๋ฉฐ FE์—์„œ ์‚ฌ์šฉํ•˜๋Š” Store์— ๋Œ€ํ•ด ๊ฐœ์ธ์ ์ธ ๊ณ ๋ฏผ ๋ฐ ํŒ€์›๋“ค๊ณผ ๊ฒ€ํ† ํ•˜๊ณ  ๋…ผ์˜ํ–ˆ๋˜ ๋‚ด์šฉ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์ƒ๊ธด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์˜

techblog.woowahan.com

 

 

 

 

 

728x90

'๊ฐœ๋ฐœ > React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

React Testing Library ์‚ฌ์šฉํ•˜๊ธฐ (from Scratch) - 1  (0) 2022.04.29
[React] ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌํ•˜๊ธฐ - i18n ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2022.04.02
[React] React Custom Hooks  (0) 2022.03.23
[React] useEffect ์™€ useLayoutEffect ์˜ ์ฐจ์ด์   (0) 2022.03.22
React vs Vue.js ์ฐจ์ด์   (0) 2022.03.02
  1. React-Query
'๊ฐœ๋ฐœ/React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • React Testing Library ์‚ฌ์šฉํ•˜๊ธฐ (from Scratch) - 1
  • [React] ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌํ•˜๊ธฐ - i18n ์‚ฌ์šฉํ•˜๊ธฐ
  • [React] React Custom Hooks
  • [React] useEffect ์™€ useLayoutEffect ์˜ ์ฐจ์ด์ 
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Frontend Developer
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
Ming devlog
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ

๊ณต์ง€์‚ฌํ•ญ

  • About Ming ๐Ÿฐ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (261)
    • ๊ฐœ๋ฐœ (255)
      • ๐Ÿ“ TIL (58)
      • โŒ ์˜ค๋ฅ˜ ๋…ธํŠธ (23)
      • React (23)
      • Next.js (11)
      • React-Native (6)
      • JavaScript (10)
      • Flutter (19)
      • Database (1)
      • ๐Ÿ’ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (21)
      • ๐Ÿ“š English (9)
      • Etc... (25)
      • โ›ต ํ•ญํ•ด99 (49)
    • ๐Ÿ’ป Dev (6)
      • ๐Ÿ“ TIL (4)
      • ๐Ÿ’ฌ Algorithm (1)
      • Etc... (1)

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ฝ”๋”ฉ๊ณต๋ถ€
  • Firebase
  • ๋ถ€ํŠธ์บ ํ”„
  • Git
  • flutter
  • ์ฝ”ํ…Œ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • nextjs
  • todaywhatidid
  • ๊ฐœ๋ฐœ์žํšŒ๊ณ 
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ํ”Œ๋Ÿฌํ„ฐ
  • ๋ฆฌ์•กํŠธ๋„ค์ดํ‹ฐ๋ธŒ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • react-native
  • ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ
  • react
  • github
  • ๊ฐœ๋ฐœ์ž์ผ๊ธฐ
  • ๋ฆฌ์•กํŠธ
  • ํ•ญํ•ด99
  • ์ฝ”ํ…Œ๊ณต๋ถ€
  • TIL
  • ReactNative
  • leetcode
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • ์ด์ฝ”๋…ธ๋ฏธ์ŠคํŠธ
  • twid
  • ์˜์–ด๊ณต๋ถ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.1
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
[React] React-Query ๋ž€?
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.