Next.js
のルーティング完全ガイド
Next.js
のルーティングは、ファイルシステムベースで動作します。これは、特定のディレクトリにファイルを置くだけで、自動的にルーティングが構成されるシンプルかつ強力な仕組みです。本ガイドでは、静的ルートから動的ルート、ネストしたルートまで、Next.js
のルーティングシステムを詳しく解説します。
基本的なルーティング
Next.js
では、pages
またはapp
フォルダ内に配置されたファイルが、そのままURLルートとして機能します。例えば、pages/index.js
は/
(ホームページ)、pages/about.js
は/about
というURLになります。app
フォルダを使用する場合は、同様にapp/page.tsx
が/
に対応します。
ルートの作成手順
- ホームページルート:
app/page.tsx
ファイルを作成し、<h1>Home</h1>
のようなコンテンツを追加することで、/
に対応するページが作成されます。
- その他のページルート:
- 例えば
app/about/page.tsx
を作成すると、/about
というURLが自動的に生成されます。
- 例えば
動的ルート
動的ルートは、ページURLが動的なパラメータ(例:/posts/123
)に基づく場合に必要です。Next.js
では、フォルダ名やファイル名に角括弧を使用して動的ルートを作成します。たとえば、pages/[id].js
というファイルを作成することで、/posts/123
のようなURLに対応するページが実装できます。
動的ルートの例
// app/posts/[id]/page.tsx
export default function Post({ params }) {
return <div>Post ID: {params.id}</div>;
}
この例では、/posts/123
のようなURLにアクセスした際に、そのIDに基づいたコンテンツを表示します。
ネストされたルート
ネストされたルートでは、フォルダを階層的に配置することで複雑なURL構造を実現できます。例えば、/blog/first
のようなURLは、app/blog/first/page.tsx
ファイルを作成することで実装できます。
ネストされたルートの例
// app/blog/first/page.tsx
export default function FirstBlog() {
return <h1>First Blog Post</h1>;
}
この構造により、/blog/first
にアクセスした際に対応するコンテンツが表示されます。
その他の特殊なルート
Next.js
では、404ページやエラーハンドリングのルートも簡単に設定できます。たとえば、app/not-found.tsx
ファイルを作成することで、存在しないページへのアクセス時にカスタムの404エラーページを表示できます。
まとめ
Next.js
のルーティングシステムは非常に柔軟で、シンプルな静的ルートから、複雑な動的・ネストルートまで対応可能です。ファイルシステムに基づくルーティングは、開発者が直感的にルートを構築できる強力な機能であり、複雑なWebアプリケーションの開発にも十分な柔軟性を提供します。