본문으로 건너뛰기

프리페치 및 Router 통합

// This lazy loads the GraphFeedItem component, meaning
// it wont start loading until something renders it
import { lazy } from 'preact/iso'

const GraphFeedItem = lazy(() => import('./GraphFeedItem'))

function Feed() {
const { data, isPending } = useQuery({
queryKey: ['feed'],
queryFn: getFeed,
})

if (isPending) {
return 'Loading feed...'
}

return (
<>
{data.map((feedItem) => {
if (feedItem.type === 'GRAPH') {
return <GraphFeedItem key={feedItem.id} feedItem={feedItem} />
}

return <StandardFeedItem key={feedItem.id} feedItem={feedItem} />
})}
</>
)
}

// GraphFeedItem.tsx
function GraphFeedItem({ feedItem }) {
const { data, isPending } = useQuery({
queryKey: ['graph', feedItem.id],
queryFn: getGraphDataById,
})

...
}