import { useCallback } from 'react'; export function usePrefetch(href: string) { // TODO: // 1) document.head에 link[rel="prefetch"][href=...] 가 이미 있는지 확인 // 2) 없으면 <link rel="prefetch" href={href}> 생성 후 head에 appendChild // 3) 같은 href를 여러 번 trigger해도 link는 한 번만 삽입 (dedup) const handler = useCallback(() => { throw new Error('Not implemented'); }, [href]); return { onMouseEnter: handler, onFocus: handler }; } export function PrefetchLink({ href, children }: { href: string; children: React.ReactNode }) { const handlers = usePrefetch(href); return ( <a href={href} {...handlers}> {children} </a> ); }
Tests