カテゴリ: Next.js 更新日: 2026/04/07

Next.jsのDynamic Routes完全入門![id]フォルダで学ぶ動的ルーティングの基本と使い方

Next.jsで [id] フォルダを使った動的ルーティング入門
Next.jsで [id] フォルダを使った動的ルーティング入門

先生と生徒の会話形式で理解しよう

生徒

「Next.jsでブログ記事の詳細ページを作りたいのですが、記事ごとにページを増やすのですか?」

先生

「Next.jsではDynamic Routesを使えば、[id]フォルダだけでたくさんのページを作れます。」

生徒

「[id]フォルダって何ですか?」

先生

「URLに合わせて中身が変わる仕組みです。順番に見ていきましょう。」

1. Next.jsのDynamic Routesとは何か

1. Next.jsのDynamic Routesとは何か
1. Next.jsのDynamic Routesとは何か

Next.jsのDynamicRoutesとは、URLに含まれる値に応じて表示内容を切り替える仕組みです。たとえばブログサイトでは、article1やarticle2など記事ごとにURLが変わります。このように数字や文字が変化する部分を動的ルートと呼びます。

通常のページはaboutやcontactのように固定されたURLです。しかし動的ルーティングでは、同じテンプレートを使いながら表示内容だけを切り替えます。これにより効率的なWebアプリ開発が可能になります。

DynamicRoutesはフォルダ名を角括弧で囲むことで作成します。これがNext.jsの大きな特徴の一つです。

2. [id]フォルダの基本構造を理解しよう

2. [id]フォルダの基本構造を理解しよう
2. [id]フォルダの基本構造を理解しよう

Next.jsではappフォルダやpagesフォルダの中に角括弧付きのフォルダを作ります。たとえば[id]というフォルダを作ると、その部分がURLの変化部分になります。

例として、ブログ記事詳細ページを作る場合を考えてみます。


export default function Page({ params }) {
  return (
    <div>
      <h1>記事ID: {params.id}</h1>
    </div>
  );
}

このコードではparams.idという値を表示しています。paramsとはURLの情報が入った箱のようなものです。idの部分に入った値を取り出して画面に表示しています。

URLがsample/10なら画面に記事ID: 10と表示されます

3. URLとparamsの仕組みをやさしく解説

3. URLとparamsの仕組みをやさしく解説
3. URLとparamsの仕組みをやさしく解説

URLとはインターネット上の住所のことです。たとえばexample.com/blog/5というURLがある場合、5の部分が動的な値です。この値をNext.jsが自動で読み取ってくれます。

paramsはその値を受け取るための仕組みです。郵便受けのようなものだと考えると理解しやすいでしょう。URLという手紙が届き、その中身をparamsが受け取ります。


export default function Page({ params }) {
  const id = params.id;

  return (
    <div>
      <p>選択された番号は {id} です。</p>
    </div>
  );
}

このように変数に代入してから使うこともできます。

URLに応じて番号が変わり、それに合わせて表示内容も変わります

4. リンクを使って動的ページへ移動する方法

4. リンクを使って動的ページへ移動する方法
4. リンクを使って動的ページへ移動する方法

Next.jsではLinkコンポーネントを使ってページ移動を行います。通常のaタグとは異なり、高速なページ遷移が可能になります。


import Link from "next/link";

export default function Home() {
  return (
    <div>
      <h1>記事一覧</h1>
      <Link href="/blog/1">記事1を見る</Link>
      <br />
      <Link href="/blog/2">記事2を見る</Link>
    </div>
  );
}

この例ではblogフォルダの中に[id]フォルダがある想定です。1や2の部分が動的に変化します。

記事1を見るを押すとblog/1に移動し記事ID:1が表示されます

5. 存在しないIDへの対応方法

5. 存在しないIDへの対応方法
5. 存在しないIDへの対応方法

動的ルートでは存在しない番号が入力されることもあります。その場合は条件分岐を使って表示を切り替えます。


export default function Page({ params }) {
  const validIds = ["1", "2", "3"];

  if (!validIds.includes(params.id)) {
    return <h1>ページが見つかりません</h1>;
  }

  return <h1>記事ID: {params.id}</h1>;
}

includesとは配列の中に値があるか確認する方法です。これにより安全なページ表示ができます。

4など存在しない番号を入力するとページが見つかりませんと表示されます

6. 複数の動的ルートを使う場合

6. 複数の動的ルートを使う場合
6. 複数の動的ルートを使う場合

Next.jsではフォルダを入れ子にすることで複数の動的ルートを作れます。たとえばcategoryとidの両方を使うことができます。

blogフォルダの中に[category]フォルダ、その中に[id]フォルダを作ると、blog/news/5のようなURLに対応できます。


export default function Page({ params }) {
  return (
    <div>
      <p>カテゴリ: {params.category}</p>
      <p>記事番号: {params.id}</p>
    </div>
  );
}

このように複数の値を同時に取得できます。大規模なWebアプリやブログサイトでも柔軟に対応できます。

blog/news/5にアクセスするとカテゴリnewsと記事番号5が表示されます

まとめ

まとめ
まとめ

今回はNext.jsのDynamicRoutesを中心に、[id]フォルダを使った動的ルーティングの基本構造から応用までを丁寧に学びました。Nextjs動的ルーティングは、ブログサイトやニュースサイト、商品詳細ページなど、同じレイアウトを使いながら表示内容だけを切り替えたい場面で非常に重要な技術です。Nextjs初心者にとっては少し難しく感じるかもしれませんが、フォルダ名を角括弧で囲むというシンプルなルールを理解すれば、仕組みは決して複雑ではありません。

DynamicRoutesの基本は、URLの変化する部分をフォルダ名で表現することです。[id]というフォルダを作成するだけで、Nextjsは自動的にURLパラメータを受け取り、paramsとしてページコンポーネントに渡してくれます。この仕組みによって、ブログ記事詳細ページやユーザー詳細ページ、商品詳細ページなどを効率よく実装できます。Nextjsブログ作成やNextjs商品ページ開発において、動的ルートの理解は欠かせません。

また、params.idを使えば、URLに含まれる値を簡単に取得できます。URL設計とルーティング設計を正しく行うことで、検索エンジンにも理解されやすい構造になります。わかりやすいURL構造は利用者にとっても利便性が高く、結果としてサイト全体の評価向上にもつながります。Nextjsルーティング設計では、可読性の高いパス設計を心がけることが大切です。

Linkコンポーネントを使ったページ遷移も重要なポイントでした。NextjsLinkを利用することで、高速な画面遷移が実現でき、利用者体験が向上します。動的ルートとLinkを組み合わせることで、記事一覧から記事詳細ページへ自然に移動できる構造を作ることができます。Nextjsページ遷移とDynamicRoutesの連携は実務でも頻繁に使われます。

さらに、存在しないIDへの対応も忘れてはいけません。条件分岐を使って正しいIDかどうかを確認することで、安全なページ表示が可能になります。Nextjsエラーハンドリングや条件分岐処理を適切に行うことは、安定したWebアプリ開発に欠かせません。特にNextjs本番運用を考える場合、想定外のURL入力にも対応できる設計が重要です。

複数の動的ルートを組み合わせた構造も学びました。[category]と[id]を組み合わせることで、カテゴリ別記事ページのような高度な構造を実現できます。Nextjs入れ子ルーティングは大規模サイト構築で非常に役立ちます。Nextjsアプリ開発では、フォルダ構成そのものがルーティング設計になるため、設計段階から全体構造を意識することが成功の鍵となります。

ここで、理解をさらに深めるための簡単なサンプルをもう一度確認してみましょう。NextjsDynamicRoutesの基本形を復習します。


export default function Page({ params }) {
  const validIds = ["1", "2", "3"];

  if (!validIds.includes(params.id)) {
    return <h1>ページが見つかりません</h1>;
  }

  return (
    <div>
      <h1>記事ID: {params.id}</h1>
      <p>このページはNext.jsのDynamic Routesで生成されています。</p>
    </div>
  );
}

このように、paramsの値を確認しながら表示を切り替えることで、安全で柔軟な動的ページを作成できます。Nextjs動的ページ生成は、現代のWeb開発において必須の知識です。ブログ構築、ポートフォリオ制作、業務システム開発など、あらゆる場面で活用できます。

NextjsDynamicRoutesを理解すると、単なる静的ページ制作から一歩進んだアプリケーション開発が可能になります。URLパラメータ取得、動的ページ表示、入れ子ルーティング、条件分岐処理などを組み合わせることで、柔軟性の高い構造を実現できます。今回学んだ内容を何度も復習し、実際に小さなブログアプリを作ってみることで理解はさらに深まるでしょう。

先生と生徒の振り返り会話

生徒

Nextjs動的ルーティングの仕組みがやっと理解できました。idフォルダを作るだけでURLの値が取得できるのですね。

先生

その通りです。NextjsDynamicRoutesはフォルダ構造がそのままルーティングになります。paramsを使えばURLパラメータも簡単に取得できます。

生徒

Linkコンポーネントを使うことで高速なページ遷移ができることも分かりました。通常のリンクとは違うのですね。

先生

はい。Nextjsページ遷移は利用者体験を向上させます。そして存在しないIDへの対応も忘れずに行うことが大切です。

生徒

カテゴリとidを組み合わせた入れ子構造も便利でした。ブログや商品ページにも応用できそうです。

先生

その理解で大丈夫です。Nextjsルーティング設計をしっかり考えることで、大規模なWebアプリ開発にも対応できます。今回学んだDynamicRoutesの知識を土台に、さらに高度なNextjs開発へ挑戦していきましょう。

カテゴリの一覧へ
新着記事
New1
React
Reactで配列データをmapでレンダリングする基本を初心者向けに解説
New2
React
ReactでCORSエラーが出たときの対処法とは?初心者向けにFetch APIでの解決方法を解説!
New3
React
React Routerとは?シングルページアプリのルーティングを初心者向けにわかりやすく解説
New4
React
Reactのカスタムフックでダークモード切り替えを実装する方法
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Next.js
Next.js CSRとは?クライアント側で描画する仕組みを初心者でもわかるように解説
No.5
Java&Spring記事人気No5
React
React Context APIの値を更新する方法!useStateと組み合わせてデータを動かす初心者ガイド
No.6
Java&Spring記事人気No6
React
Reactの学習ロードマップ!初心者が最短で習得する流れを完全ガイド
No.7
Java&Spring記事人気No7
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介
No.8
Java&Spring記事人気No8
React
React Context APIでフォーム管理を効率化!初心者向け実践ガイド