Skip to Content
๐Ÿ‘€ Suspensive v3์—์„œ์˜ ๋ณ€๊ฒฝ์„ ํ™•์ธํ•˜์„ธ์š”. ๋”๋ณด๊ธฐ
๋ฌธ์„œ๋ณด๊ธฐ@suspensive/react-query<PrefetchQuery/>

PrefetchQuery

React hook์˜ ์ œ์•ฝ์„ ํ”ผํ•ด JSX์ƒ์—์„œ๋„ usePrefetchQuery๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค.

import { PrefetchQuery, useSuspenseQuery } from '@suspensive/react-query' import { InView } from '@suspensive/react-dom' const PostsPage = () => { const { data: posts } = useSuspenseQuery({ queryKey: ['posts'], queryFn: () => getPosts(), }) return posts.map((post) => ( <InView> {({ ref, isInView }) => ( <> {isInView ? ( // ๐Ÿšซ React hook์˜ ์ œ์•ฝ์œผ๋กœ usePrefetchQuery๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค // usePrefetchQuery({ // queryKey: ['posts', post.id, 'comments'], // queryFn: () => getPostComments(post.id), // }) // โœ… Post Comments ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๊ฐ๊ฐ์˜ post comments query์— ๋Œ€ํ•ด usePrefetchQuery๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. <PrefetchQuery queryKey={['posts', post.id, 'comments']} queryFn={() => getPostComments(post.id)} /> ) : null} <div ref={ref}> <h2>{post.title}</h2> <p>{post.description}</p> <Link to={`/posts/${post.id}/comments`}>See comments</Link> </div> </> )} </InView> )) }
์ˆ˜์ •๋œ ๋‚ ์งœ: