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

Next.jsのDynamic Routes完全解説!初心者でもわかるNext.jsの動的ルートの仕組み

Next.jsの動的ルートの仕組みを理解しよう
Next.jsの動的ルートの仕組みを理解しよう

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

生徒

「Next.jsの動的ルートって何ですか?普通のページと何が違うんですか?」

先生

「Next.jsのDynamic Routesは、URLに応じて中身が変わるページを作る仕組みです。」

生徒

「URLで内容が変わるって、どういうことですか?」

先生

「たとえばブログ記事のページです。記事ごとにURLが違いますよね。そのような仕組みをNext.jsでは簡単に作れます。」

1. Next.jsの動的ルートとは?

1. Next.jsの動的ルートとは?
1. Next.jsの動的ルートとは?

Next.jsの動的ルートとは、URLの一部を変数のように扱うことで、同じページ構造を使いながら表示内容を切り替える仕組みです。通常のページは固定されたURLで表示されますが、動的ルートではURLの値に応じてデータを変えることができます。

たとえば、ブログの記事ページを考えてみましょう。記事ごとにページを作るのではなく、ひとつのテンプレートを使ってURLの番号や文字列によって内容を切り替えます。これにより、効率よくWebアプリケーションやサイトを作ることができます。

動的という言葉は、状況に応じて変わるという意味です。つまり動的ルートとは、状況に応じて中身が変わるページのことです。

2. ファイル名でルートを作る仕組み

2. ファイル名でルートを作る仕組み
2. ファイル名でルートを作る仕組み

Next.jsでは、フォルダやファイル名がそのままURLになります。これをファイルベースルーティングと呼びます。たとえば、appフォルダの中にaboutというフォルダを作ると、aboutというURLになります。

動的ルートを作る場合は、フォルダ名を角括弧で囲みます。これが変数の役割を持ちます。


app/blog/[id]/page.jsx

export default function BlogPage({ params }) {
  return (
    <div>
      <h1>ブログ記事ページ</h1>
      <p>記事ID: {params.id}</p>
    </div>
  );
}

上の例では、idという部分が変わる値になります。URLがblog/1なら1が入り、blog/helloならhelloが入ります。

ブラウザで「/blog/5」にアクセスすると、画面に「記事ID: 5」と表示されます。

3. paramsとは何か?

3. paramsとは何か?
3. paramsとは何か?

paramsとは、URLの変化する部分を受け取るための仕組みです。動的ルートで指定した名前が、そのままparamsの中に入ります。

これは荷物のラベルのようなものです。箱に番号が書いてあれば、その番号を見て中身を判断できます。URLも同じで、番号や名前によって表示内容を変えます。


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

  return (
    <div>
      <h1>商品ページ</h1>
      <p>選ばれた商品番号は {productId} です。</p>
    </div>
  );
}
「/product/10」にアクセスすると「選ばれた商品番号は 10 です。」と表示されます。

4. 複数の動的ルートを使う方法

4. 複数の動的ルートを使う方法
4. 複数の動的ルートを使う方法

Next.jsでは、動的ルートを複数組み合わせることもできます。たとえば、カテゴリと記事番号の両方をURLに含めることができます。


app/shop/[category]/[item]/page.jsx

export default function ItemPage({ params }) {
  return (
    <div>
      <h1>商品詳細ページ</h1>
      <p>カテゴリ: {params.category}</p>
      <p>商品名: {params.item}</p>
    </div>
  );
}

このようにすることで、shop/electronics/tvのようなURLに対応できます。

「/shop/book/novel」にアクセスすると、カテゴリはbook、商品名はnovelと表示されます。

5. 動的ルートでデータを表示する

5. 動的ルートでデータを表示する
5. 動的ルートでデータを表示する

実際のWebアプリケーションでは、URLの値をもとにデータを取得して表示します。たとえば記事番号に応じて内容を切り替えます。


const posts = {
  "1": "はじめてのNext.js",
  "2": "Dynamic Routesの基礎"
};

export default function PostPage({ params }) {
  const title = posts[params.id];

  return (
    <div>
      <h1>記事タイトル</h1>
      <p>{title}</p>
    </div>
  );
}

このように、URLの値を使ってデータを選びます。これが動的ルートの本当の力です。

「/post/1」にアクセスすると「はじめてのNext.js」と表示されます。

6. 静的ルートとの違いを理解しよう

6. 静的ルートとの違いを理解しよう
6. 静的ルートとの違いを理解しよう

静的ルートは、あらかじめ決まったページです。たとえばaboutやcontactのようなページです。一方、動的ルートはURLによって内容が変わります。

たくさんの商品や記事を扱うサイトでは、動的ルートが必須になります。同じ設計図で、番号や名前だけ変えて表示するイメージです。

Next.jsのDynamic Routesを理解すると、ブログ、ニュースサイト、ECサイト、会員ページなど、さまざまなWebアプリケーションを作る基礎が身につきます。

7. 初心者がつまずきやすいポイント

7. 初心者がつまずきやすいポイント
7. 初心者がつまずきやすいポイント

よくある間違いは、角括弧を付け忘れることです。角括弧がないと動的ルートになりません。また、paramsの名前はフォルダ名と同じにする必要があります。

Next.jsの動的ルートは、ファイル名とURLの関係を理解することが一番大切です。ファイル構造を正しく作ることで、自然と正しいルーティングになります。

最初は難しく感じるかもしれませんが、URLが変数のように使えると考えると理解しやすくなります。これがNext.jsのDynamic Routesの基本的な仕組みです。

まとめ

まとめ
まとめ

今回はNext.jsのDynamic Routesについて、基礎から応用まで順番に整理して理解してきました。Next.jsの動的ルートは、URLの一部を変数のように扱い、同じページ構造を使いながら表示内容を切り替える仕組みです。ファイルベースルーティングを採用しているNext.jsでは、フォルダ名やファイル名がそのままURLに対応します。そのため、appディレクトリの構造を正しく設計することが、Webアプリケーション開発において非常に重要になります。

特に重要なのは、角括弧で囲んだフォルダ名が動的ルートとして機能するという点です。blogの下にidという角括弧付きフォルダを作成すれば、blogの後ろに入る値がparamsとして受け取れるようになります。この仕組みを理解することで、ブログ記事一覧、商品詳細ページ、ニュース記事ページ、会員専用ページなど、さまざまなWebサイト構造に対応できるようになります。

Next.jsのDynamic Routesは、単にURLを変化させるだけではありません。URLパラメータをもとにデータを取得し、データベースや外部APIと連携することで、本格的なWebアプリケーション開発が可能になります。Reactのコンポーネント設計と組み合わせることで、再利用性の高い設計ができるのも大きな特徴です。Next.jsとReactを組み合わせたモダンなフロントエンド開発では、動的ルーティングは欠かせない基礎知識といえます。

また、静的ルートとの違いを理解することも重要です。静的ルートは固定されたURLに対応するページであり、会社概要やお問い合わせページのような内容が変わらないページに向いています。一方で、動的ルートはURLによって表示内容が変わるため、記事数や商品数が増えても効率よく管理できます。大量のコンテンツを扱うサイトでは、Dynamic Routesの活用が開発効率を大きく左右します。

初心者がつまずきやすいポイントとしては、フォルダ名とparamsの名前を一致させること、角括弧を正しく使うこと、ファイル構造を正しく配置することが挙げられます。Next.jsのルーティングはファイル構造がすべての基礎になります。フォルダ構成をしっかり理解することで、URL設計と画面設計を自然に結び付けることができます。

さらに発展的な使い方としては、複数の動的ルートを組み合わせる方法があります。カテゴリと商品名、ユーザー名と投稿番号など、複数の値をURLに含めることで、より柔軟なページ構成が可能になります。これはECサイトやブログシステム、ポータルサイト開発において非常に実践的なテクニックです。

Next.jsのDynamic Routesを理解することは、Next.js入門における大きな一歩です。Reactの基礎、コンポーネント設計、propsの受け渡し、そしてURLパラメータの活用を組み合わせることで、実務レベルのWebアプリケーション開発に近づきます。動的ルーティングは単なる機能ではなく、Webサイト設計そのものを支える重要な概念です。

理解を深めるサンプルコード


app/user/[username]/page.jsx

const users = {
  taro: "東京在住のエンジニア",
  hanako: "大阪在住のデザイナー"
};

export default function UserPage({ params }) {
  const profile = users[params.username];

  return (
    <div>
      <h1>ユーザープロフィール</h1>
      <p>ユーザー名: {params.username}</p>
      <p>紹介文: {profile}</p>
    </div>
  );
}
ブラウザで「/user/taro」にアクセスすると、ユーザー名がtaroとして読み取られ、対応する紹介文が表示されます。

このようにNext.jsの動的ルートを活用すれば、URL設計とデータ表示を密接に結び付けることができます。Next.js学習においてDynamic Routesは避けて通れない重要なテーマです。繰り返しコードを書いて確認しながら理解を深めていきましょう。

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

生徒

Next.jsのDynamic Routesは、URLの一部を変数のように使える仕組みだと理解しました。ファイル名を角括弧で囲むことで動的ルートになるのですね。

先生

その通りです。Next.jsではファイルベースルーティングが基本です。フォルダ構造を正しく設計することが、動的ルーティング理解の第一歩です。

生徒

paramsを使ってURLの値を受け取り、その値をもとにデータを表示できる点が重要だと感じました。ブログや商品ページに応用できそうです。

先生

まさにそれがDynamic Routesの本質です。Next.jsとReactを組み合わせることで、再利用可能なコンポーネントと柔軟なURL設計が実現できます。

生徒

静的ルートとの違いも理解できました。固定ページと動的ページを使い分けることが大切なのですね。

先生

はい。Next.jsのDynamic Routesを理解すれば、実践的なWebアプリケーション開発の基礎が身につきます。これからも実際にコードを書きながら学習を続けていきましょう。

カテゴリの一覧へ
新着記事
New1
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介
New2
React
Reactのリストとkeyをやさしく解説!初心者でもわかるリストアイテムをコンポーネントに分割する方法
New3
React
React RouterのuseNavigateフックの使い方を完全解説!初心者でもわかるプログラム的なページ遷移
New4
React
Reactでよくある型エラーと解決法をやさしく解説!初心者でも安心できる型安全な考え方
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
React Context APIのデバッグ方法を完全解説!React DevToolsで中身を丸見えにする方法
No.3
Java&Spring記事人気No3
React
React Routerとは?シングルページアプリのルーティングを初心者向けにわかりやすく解説
No.4
Java&Spring記事人気No4
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.5
Java&Spring記事人気No5
React
Reactの学習ロードマップ!初心者が最短で習得する流れを完全ガイド
No.6
Java&Spring記事人気No6
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介
No.7
Java&Spring記事人気No7
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.8
Java&Spring記事人気No8
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介