
사용자가 요청하기 전에 미리 데이터를 로드하는 기술이다.
Intersection Observer API를 사용하여 Link가 뷰포트에 들어올 때 해당 페이지를 자동으로 prefetching한다.
Next.js 13에서는 마우스 호버 시 데이터를 받아오는 방법도 추가됐다. 이 방법으로 동적으로 추가된 요소나 빠른 스크롤 때문에 뷰포트 감지가 이루어지지 않는 예외 경우에도 대처할 수 있다.
Next.js는 SSR의 단점으로 서버에서 HTML 파일을 받아서 렌더링하므로 로딩이 발생한다. 이런 단점을 극복하는 방법 중 하나가 prefetching이다.
페이지 전환 가속화
링크를 클릭하기 전에 리소스를 미리 로드하는 것.
사용자 행동 예측
방문할 가능성이 높은 페이지를 미리 로드하는 것.
네트워크 조건 최적화
사용자의 네트워크 상태가 양호할 때 중요한 리소스를 미리 로드하는 것.
<Link> 컴포넌트<a> 대신 <Link>를 사용하면 자동으로 prefetching이 동작한다.
href (필수)
href="/dashboard"prefetch
scroll
replace
useRouter Hookimport { useEffect } from 'react';
import { useRouter } from 'next/router';
const MyComponent = () => {
const router = useRouter();
useEffect(() => {
router.prefetch("/about");
}, [router]);
return <div>My Component</div>;
};
페이지 전환 시 router 객체가 변환된다. router가 변화를 감지하여 특정 주소의 페이지를 prefetching한다.