Next.js는 파일 시스템 기반의 라우터 기능을 제공하며, App Router와 Pages Router가 있다. 구체적으로 비교 분석하기보다는 크게 App / Pages 라우터의 기본적인 폴더 구조와 경로에 대하여 정리를 해보았다.
page.js
또는 route.js
로 작성된 파일만 경로로써 사용할 수 있다.app/components/button.js ->
/components/button (X)
app/dashboard/page.js ->/dashboard (O)
app/dashboard/nav.js ->/dashboard/nav (X)
<html>
, <body>
태그를 포함pages/_app.js
, pages/_document.js
파일을 대체// app/layout.tsx
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
(/)
경로 페이지// app/page.tsx
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
pages/index.tsx →
/
pages/about.tsx →/about
pages/content/index.tsx →/content
(/)
경로 페이지// pages/index.tsx
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
// pages/_app.tsx
import type { AppProps } from 'next/app'
export default function App({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />
}
<html>
, <body>
등 전체 페이지의 구조와 메타 태그, 외부 스크립트, 글꼴 등을 설정// pages/_document.tsx
import { Html, Head, Main, NextScript } from 'next/document'
export default function Document() {
return (
<Html>
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
참고
https://nextjs.org/docs/getting-started/installation#creating-directories
작성해주신 글 보고 차근차근 잘 따라가서 도움이 되었습니다!