Next.js는 파일 기반 라우팅을 제공하기 때문에,
특정 URL로 이동하고 싶다면 해당 경로의 폴더와 page.js
(page.tsx
)파일만 만들면 된다.
/about
페이지 생성하기/about
으로 라우팅한다고 가정해보자.
1. app/about/
폴더를 만든다.
2. app/about/page.js
파일을 생성한다.
app/
└ about/
└ page.tsx
/about
경로로 접근하면 해당 페이지가 자동으로 렌더링된다.
<a href="/about">
쓰면 안 되는 이유리액트에서는 SPA(Single Page Application) 구조를 유지하기 위해 클라이언트에서 페이지를 전환하더라도 전체 새로고침 없이 전환하는 것이 중요하다.
하지만 아래처럼 <a>
태그를 사용하면
export default function Home() {
return (
<main>
<p>
<a href="/about">About us</a>
</p>
</main>
);
}
Next.js에서는 이 문제를 해결하기 위해 Link
컴포넌트를 제공한다.
import Link from "next/link";
export default function Home() {
return (
<main>
<p>
<Link href="/about">About Us</Link>
</p>
</main>
);
}
Link
컴포넌트를 렌더링하면, 백그라운드에서 다음 페이지 내용을 미리 서버에 렌더링한다.
이후, 사용자가 클릭하면 클라이언트측에서 기존 HTML을 유지하면서 필요한 부분만 업데이트한다.
이로써 부드러운 전환과 빠른 응답이 가능한 것이다.
💡 Next.js에서는 Link 컴포넌트를 사용하자.