#26PerformanceEasy

Prefetch (usePrefetch hook)

Prefetch — usePrefetch Hook

Next.js의 <Link prefetch> 가 hover 시 다음 페이지 자원을 미리 fetch하는 패턴을 직접 만들어 보세요. <link rel="prefetch" href={...}> 를 동적으로 <head> 에 삽입해 브라우저가 유휴 시간에 자원을 가져오게 합니다.

요구사항

  1. usePrefetch(href) 훅은 { onMouseEnter, onFocus } 핸들러를 반환
  2. 핸들러가 처음 호출될 때 <link rel="prefetch" href={href}>document.head 에 삽입
  3. 같은 href에 대해 이미 link가 있으면 중복 삽입 안 함 (dedup)
  4. 핸들러가 호출되기 전엔 link 삽입 X
  5. 서로 다른 href는 별도 link로 삽입

힌트

  • document.head.querySelector('link[rel="prefetch"][href="..."]') 로 기존 link 존재 확인
  • document.createElement('link')link.rel = 'prefetch', link.href = hrefdocument.head.appendChild(link)

학습 포인트

  • <link rel="prefetch"> 의 실제 사용 — 브라우저에게 "이 자원 곧 필요" 라는 hint
  • React 훅으로 부수효과(DOM 조작) 캡슐화
  • hover/focus 기반 prefetch 트리거링 (Next.js Link, React Router prefetch 와 같은 패턴)
Sandpack 로드 중…