fetching -> fresh -> stale -> inactive -> delete
fetching
: ๋ฐ์ดํฐ ์์ฒญ ์ํ.
fresh
: ๋ฐ์ดํฐ๊ฐ ๋ง๋ฃ๋์ง ์์ ์ํ.
(์ปดํฌ๋ํธ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์์ฒญํ์ง ์๋๋ค. ์๋ก๊ณ ์นจํ๋ฉด ๋ค์ fetching.)
stale
: ๋ฐ์ดํฐ๊ฐ ๋ง๋ฃ๋ ์ํ.
(์ต์ ํ๊ฐ ํ์ํ ๋ฐ์ดํฐ. ์ปดํฌ๋ํธ๊ฐ Mount, update ๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์์ฒญ)
inactive
: ์ฌ์ฉํ์ง ์๋ ์ํ.
(๊ธฐ๋ณธ๊ฐ 5๋ถ์ด ์ง๋๋ฉด Garbage Collector๊ฐ ์บ์์์ ์ ๊ฑฐ.)
delete
: Garbage Collector์ ์ํด ์บ์์์ ์ ๊ฑฐ๋ ์ํ.
staleTime
: fresh -> stale ์ํ๋ก ๋ณ๊ฒฝ๋๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ. (๋ฐ์ดํฐ๊ฐ ๋ง๋ฃ๋๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ.)
cacheTime
: inactive ์ํ์ผ ๋ ์บ์ฑ๋ ์ํ๋ก ๋จ์์๋ ์๊ฐ.
React Query์์ staleTime๊ณผ cacheTime์ ์ฐจ์ด
( ์ด ๋ด๋ถ๋ ๋ํผ์
์
๋๋ค.
staleTime ๊ธฐ๋ณธ๊ฐ์ด 0์ธ ์ด์ ์ ๋ํ ์ถ์ธก๊ณผ ํ ๋ก , with.@lumpenop
- ๋ง์ฝ staleTime์ด ์๊ณ , ๊ณ์ ์ฌ์ฉํ๋ค๋ฉด. ๋ง๋ฃ๋์ง ์๊ณ inactive ์ํ๋ก ๊ฐ์ง ์์ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ staleTime์ 0์ผ๋ก ์ค์ ํด์ ์๋ก๊ณ ์นจ ํด์ค ์ ์๊ฒ ํ๋๊ฑธ๊น?
slateTime=0์ผ๊ฒฝ์ฐ fresh->(0์ด)->stale->inactive
- staleTime์ ์ฃผ์ง ์์ผ๋ฉด stale์ํ๊ฐ ์์ ๊ฒ์ด๋ค. ๋ง๋ฃ๋์ง ์์ ๊ฒ์ด๋ค.
- cacheTime์ 5๋ถ์ผ ๊ฒฝ์ฐ, inactive๊ฐ ๋ ๋ ๋ถํฐ 5๋ถ๋์ ๋ก์ปฌ์บ์ฑ์ ํด์ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ๋จ์์๊ฒ ํด์ฃผ๋ ๊ฒ์ผ๋ก ์๊ฐํ๋ค.
์ด๋ ต๋ค...
[Discussions / staleTime vs. cacheTime](https://github.com/tannerlinsley/react-query/discussions/1685)
)
invalidateQueries
$ yarn install react-query
useQueries
์ถ์ฒenabled
๋ฅผ ํตํด useQuery๋ฅผ ๋๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์.data
: queryFunction์ด ๋ฐํํ Promise resolve ๋ฐ์ดํฐisLoading
: ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์๋ ์ํ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ์ค์ผ ๋ trueisFetching
: ์บ์ ๋ฐ์ดํฐ ์ ๋ฌด์ ์๊ด์์ด ๋ฐ์ดํฐ๋ฅผ ์์ฒญ์ค์ผ ๋ truecacheTime
: unused / inactive ์บ์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ ์ง์ํฌ ์๊ฐ.
๊ธฐ๋ณธ๊ฐ์ 5๋ถ.
Infinity๋ก ์ค์ ํ๋ฉด ์ฟผ๋ฆฌ ๋ฐ์ดํฐ๊ฐ ์บ์์์ ์ ๊ฑฐ๋์ง ์๋๋ค.
staleTime
: ์ฟผ๋ฆฌ ๋ฐ์ดํฐ๊ฐ fresh์์ stale๋ก ์ ํ๋๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ค.
๊ธฐ๋ณธ๊ฐ์ 0.
Infinity๋ก ์ค์ ํ๋ฉด ์ฟผ๋ฆฌ ๋ฐ์ดํฐ๋ ์ง์ ์บ์๋ฅผ ๋ฌดํจํํ ๋๊น์ง fresh ์ํ๋ก ์ ์ง๋๋ค.
์บ์๋ ๋ฉ๋ชจ๋ฆฌ์์ ๊ด๋ฆฌ๋๋ฏ๋ก ๋ธ๋ผ์ฐ์ ์๋ก๊ณ ์นจ ํ์๋ ๋ค์ ๊ฐ์ ธ์จ๋ค.
onSuccess
: queryFunction์ด ์ฑ๊ณต์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ๋ ํธ์ถ๋๋ ํจ์์ด๋ค.
onError
: queryFunction์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ํธ์ถ๋๋ ํจ์์ด๋ค.
onSettled
: queryFunction์ด ์ฑ๊ณต, ์คํจํ ๊ฒฝ์ฐ ๋ชจ๋ ์คํ๋๋ ํจ์์ด๋ค.
keepPreviousData
: queryKey๊ฐ ๋ณ๊ฒฝ๋์ด ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๋์์๋ ๋ง์ง๋งdata๊ฐ์ ์ ์งํ๋ค.
ํ์ด์ง๋ค์ด์
์ ๊ตฌํํ ๋ ์ ์ฉํ๋ค. ์บ์๋์ง ์์ ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ฌ ๋ ํ๋ฉด์์ viewing ์ปดํฌ๋ํธ๊ฐ ์ฌ๋ผ์ง๋ ํ์์ ๋ฐฉ์งํ ์ ์๋ค.
isPreviousData๊ฐ์ผ๋ก ํ์ฌ์ queryKey์ ํด๋นํ๋ ๊ฐ์ธ์ง ํ์ธํ ์ ์๋ค.
initialData
: ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋ ํ์ํ ์ด๊ธฐ๊ฐ์ด๋ค.placeholder์๋ ๋ฌ๋ฆฌ ์บ์ฑ์ด ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ ์ฅํด ๋ ๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ด๊ธฐํํ ๋ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
refetchOnWindowFocus
: ์๋์ฐ๊ฐ ๋ค์ ํฌ์ปค์ค๋์์ ๋ ๋ฐ์ดํฐ๋ฅผ ํธ์ถํ ๊ฒ์ธ์ง ์ฌ๋ถ์ด๋ค. ๊ธฐ๋ณธ๊ฐ์true์ด๋ค.
๋ฌดํ์คํฌ๋กค.
useInfiniteQuery
data
: [pages, pageParams]
๊ฐ์ด ๋ด๊น.fetchNextPage
: ๋ค์ ํ์ด์ง ํธ์ถ ํจ์.hasNextPage
: ๋ค์ ํ์ด์ง๊ฐ ์๋์ง ํ๋จ. (getNextPageParam
๋ฆฌํด๊ฐ์ผ๋ก)isFetchingNextPage
: fetchNextPage
๋ฅผ ํตํด fetching์ด ๋๊ณ ์๋์ง ํ๋จ. pageParam
: page๋ฅผ ์ง์ ํด์ค๋ค. ๊ธฐ๋ณธ๊ฐ 1์ ๊ธฐ์ค์ผ๋ก ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ๋ค.getNextPageParam
: page๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.