๐ŸŽ‰ berenickt ๋ธ”๋กœ๊ทธ์— ์˜จ ๊ฑธ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๐ŸŽ‰
Front
Tanstack Query
10-Query Options

Query Options

queryKey์™€ queryFn์„ ์—ฌ๋Ÿฌ ๊ณณ ์‚ฌ์ด์— ๊ณต์œ ํ•˜๋ฉด์„œ๋„ ์„œ๋กœ ๊ฐ™์€ ์œ„์น˜์— ๋‘˜ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” queryOptions ๋„์šฐ๋ฏธ(helper)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋Ÿฐํƒ€์ž„์—, ์ด ๋„์šฐ๋ฏธ๋Š” ์ „๋‹ฌํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•  ๋ฟ์ด์ง€๋งŒ, TypeScript์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋งŽ์€ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. Query์— ๋Œ€ํ•ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์˜ต์…˜์„ ํ•œ ๊ณณ์—์„œ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ํƒ€์ž…์— ๋Œ€ํ•œ ํƒ€์ž… ์ถ”๋ก  ๋ฐ ํƒ€์ž… ์•ˆ์ „์„ฑ๋„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

1
import { queryOptions } from '@tanstack/react-query'
2
3
function groupOptions(id: number) {
4
return queryOptions({
5
queryKey: ['groups', id],
6
queryFn: () => fetchGroups(id),
7
staleTime: 5 * 1000,
8
})
9
}
10
11
// usage:
12
13
useQuery(groupOptions(1))
14
useSuspenseQuery(groupOptions(5))
15
useQueries({
16
queries: [groupOptions(1), groupOptions(2)],
17
})
18
queryClient.prefetchQuery(groupOptions(23))
19
queryClient.setQueryData(groupOptions(42).queryKey, newGroups)

Infinite Queries์˜ ๊ฒฝ์šฐ infiniteQueryOptions์ด๋ผ๋Š” ๋ณ„๋„์˜ ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.