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

Next.js自動ルーティングを初心者向けに解説!Next.jsのページ遷移の基本を理解する

Next.jsの自動ルーティングの動作を理解する
Next.jsの自動ルーティングの動作を理解する

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

生徒

「先生、Next.jsでページを作るとき、どうやってURLに対応させるんですか?」

先生

「Next.jsでは、ページファイルを作るだけで自動的にルーティングが設定されます。」

生徒

「自動ってどういうことですか?自分でURLを書かなくてもいいんですか?」

先生

「はい、pagesフォルダにファイルを作ると、そのファイル名がそのままURLになります。」

生徒

「なるほど、では実際にコードを見ながら学べますか?」

先生

「もちろんです。順番に基本を見ていきましょう。」

1. pagesフォルダと自動ルーティングの基本

1. pagesフォルダと自動ルーティングの基本
1. pagesフォルダと自動ルーティングの基本

Next.jsではプロジェクト内の pages フォルダが特別な意味を持っています。このフォルダに作成したファイルが自動でURLに対応します。例えば pages/about.js を作ると、ブラウザで /about というURLでページを表示できます。


function About() {
  return <h1>Aboutページです</h1>;
}

export default About;
(ブラウザで /about にアクセスすると、「Aboutページです」と表示されます)

2. index.jsはホームページに対応

2. index.jsはホームページに対応
2. index.jsはホームページに対応

トップページは pages/index.js が自動的にルート(/)に対応します。ファイル名が index の場合、特別にルートのURLとして扱われます。


function Home() {
  return <h1>ホームページです</h1>;
}

export default Home;
(ブラウザで / にアクセスすると、「ホームページです」と表示されます)

3. サブフォルダを作って階層的にルーティング

3. サブフォルダを作って階層的にルーティング
3. サブフォルダを作って階層的にルーティング

pagesフォルダ内にサブフォルダを作ると、URLも自動的に階層構造になります。例えば pages/blog/first.js を作ると、URLは /blog/first になります。


function FirstBlog() {
  return <h1>ブログの最初の記事です</h1>;
}

export default FirstBlog;
(ブラウザで /blog/first にアクセスすると、「ブログの最初の記事です」と表示されます)

4. 動的ルーティングで柔軟にURLを作る

4. 動的ルーティングで柔軟にURLを作る
4. 動的ルーティングで柔軟にURLを作る

Next.jsでは角括弧を使うことで動的なルートを作れます。例えば pages/blog/[id].js とすると、URLの id 部分を変えて複数の記事に対応できます。


import { useRouter } from "next/router";

function BlogPost() {
  const router = useRouter();
  const { id } = router.query;

  return <h1>ブログ記事ID: {id}</h1>;
}

export default BlogPost;
(ブラウザで /blog/123 にアクセスすると、「ブログ記事ID: 123」と表示されます)

5. ネストした動的ルートの例

5. ネストした動的ルートの例
5. ネストした動的ルートの例

動的ルートはサブフォルダでも使えます。例えば pages/blog/[category]/[id].js とすると、カテゴリごとの記事ページを作れます。


import { useRouter } from "next/router";

function CategoryPost() {
  const router = useRouter();
  const { category, id } = router.query;

  return <h1>{category} の記事 {id} です</h1>;
}

export default CategoryPost;
(ブラウザで /blog/tech/001 にアクセスすると、「tech の記事 001 です」と表示されます)

6. Linkコンポーネントでページ遷移を簡単に

6. Linkコンポーネントでページ遷移を簡単に
6. Linkコンポーネントでページ遷移を簡単に

Next.jsでは next/linkLink コンポーネントを使うことで、クリックだけで他のページに移動できます。


import Link from "next/link";

function Navigation() {
  return (
    <div>
      <Link href="/">ホーム</Link>
      <br />
      <Link href="/about">Aboutページへ</Link>
    </div>
  );
}

export default Navigation;
(リンクをクリックすると、自動でページが切り替わります)

まとめ

まとめ
まとめ

今回の記事では、Next.jsの自動ルーティングについて、初心者の方にもわかりやすく基本から応用までを解説しました。Next.jsでは、pagesフォルダに作成したファイルがそのままURLに対応するという特徴があります。トップページは index.js が自動でルート(/)に対応し、サブフォルダを作ることで階層的なルーティングが可能になります。また、角括弧を使った動的ルーティングを活用することで、複数の記事やページを柔軟に管理できます。さらに、 Link コンポーネントを使えば、クリック操作だけでページ間の遷移ができ、ユーザー体験を向上させることができます。

具体的なコード例として、通常の静的ページの作成、サブフォルダによる階層構造のルーティング、動的ルーティングの実装方法、さらにネストした動的ルートの作成方法を紹介しました。これにより、Next.jsでのページ設計やURL設計の基本的な考え方が理解できます。初心者の方でも、pagesフォルダの構造とファイル名の規則を守るだけで、複雑なルーティングを実現できる点が大きな魅力です。

また、動的ルーティングを使用することで、ブログ記事や商品詳細ページなど、IDやカテゴリに応じてURLを柔軟に生成できることを学びました。 useRouter フックを使うことで、URLパラメータを簡単に取得でき、画面に表示することができます。さらに、 Link コンポーネントを活用することで、ページ間の遷移を効率的に実装でき、ユーザーインターフェースをシンプルに保つことが可能です。

まとめとして、Next.jsの自動ルーティングの特徴を整理すると、①pagesフォルダに作成したファイルが自動でURLに対応、②index.jsはルート(/)に自動対応、③サブフォルダで階層的なURL構造が作れる、④角括弧を使った動的ルーティングで柔軟に対応、⑤Linkコンポーネントでページ遷移が簡単、というポイントがあります。これらを組み合わせることで、Next.jsで効率的にページ設計を行い、管理しやすいアプリケーションを構築できます。

次に、Reactを使った簡単なサンプルコードを紹介します。これはNext.jsのページにリンクを組み込んで、クリックでメッセージを変更する例です。


import React, { useState } from "react";
import Link from "next/link";

function Sample() {
  const [message, setMessage] = useState("こんにちは!");

  return (
    <div>
      <h1>{message}</h1>
      <button onClick={() => setMessage("ボタンがクリックされました!")}>
        クリックしてみよう
      </button>
      <div className="mt-3">
        <Link href="/about">Aboutページへ移動</Link>
      </div>
    </div>
  );
}

export default Sample;
(画面に「こんにちは!」と表示され、ボタンを押すと「ボタンがクリックされました!」に変わります。さらにリンクをクリックすると、Aboutページに遷移します)
先生と生徒の振り返り会話

生徒

「先生、Next.jsの自動ルーティングって、静的ページと動的ページの両方に対応できるんですね?」

先生

「その通りです。静的なページはファイル名でルートが決まり、動的なページは角括弧を使うことで柔軟に対応できます。」

生徒

「サブフォルダを作るだけで階層的なURLも作れるのが便利ですね。」

先生

「はい、これにより複雑なサイト構造でもわかりやすく整理できます。さらにLinkコンポーネントを使うことで、ページ遷移も簡単です。」

生徒

「なるほど、pagesフォルダの構造とファイル名の規則を理解すれば、Next.jsで効率よくサイトを作れるんですね。」

先生

「その通りです。今回学んだ基本と動的ルーティングの考え方を組み合わせれば、さまざまなWebアプリケーションに応用できます。」

カテゴリの一覧へ
新着記事
New1
React
React Context APIのデバッグ方法を完全解説!React DevToolsで中身を丸見えにする方法
New2
React
Reactのイベント処理を完全ガイド!初心者でもわかるonClickの使い方とボタンの操作方法
New3
React
Reactで学ぶuseStateの型定義入門!オブジェクトと配列を型安全に管理する方法
New4
Next.js
Next.js自動ルーティングを初心者向けに解説!Next.jsのページ遷移の基本を理解する
人気記事
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
Reactの学習ロードマップ!初心者が最短で習得する流れを完全ガイド
No.4
Java&Spring記事人気No4
React
React Context APIの値を更新する方法!useStateと組み合わせてデータを動かす初心者ガイド
No.5
Java&Spring記事人気No5
React
React Context APIのレンダリング問題を解決!初心者でもわかるパフォーマンス最適化ガイド
No.6
Java&Spring記事人気No6
React
React Context APIのパフォーマンス最適化を徹底解説!useMemoで無駄な描画を防ぐ方法
No.7
Java&Spring記事人気No7
Next.js
Next.js ISR(Incremental Static Regeneration)を初心者でもわかるように徹底解説!SSGを強化する最新技術
No.8
Java&Spring記事人気No8
Next.js
Next.js CSRとは?クライアント側で描画する仕組みを初心者でもわかるように解説