カテゴリ: Next.js 更新日: 2026/03/20

Next.js Pages RouterとReact Routerの違いを初心者向けに徹底解説!Next.jsルーティング入門

Next.js Pages RouterとReact Routerの違い
Next.js Pages RouterとReact Routerの違い

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

生徒

「先生、Next.jsとReactでルーティングの仕組みはどう違うんですか?」

先生

「良い質問ですね。Next.jsにはPages Routerという仕組みがあり、ReactではReact Routerというライブラリを使います。それぞれ特徴が違うんです。」

生徒

「特徴の違いを簡単に教えてもらえますか?」

先生

「もちろんです。Next.jsのPages Routerは、ファイル構造に応じて自動でURLが作られるのが特徴です。一方React Routerは、自分でURLとコンポーネントの対応を設定します。」

1. Next.js Pages Routerとは?

1. Next.js Pages Routerとは?
1. Next.js Pages Routerとは?

Next.jsのPages Routerは、プロジェクト内の「pages」というフォルダの中に作ったファイル名がそのままURLになります。つまり、ファイルを作るだけでルーティングが完了する仕組みです。初心者でも迷わずURLを作れるのが大きなメリットです。


import React from "react";

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

export default About;
(このコードをpages/about.jsとして保存すると、ブラウザで「/about」と入力するだけでAboutページが表示されます)

2. React Routerとは?

2. React Routerとは?
2. React Routerとは?

React RouterはReactアプリでルーティングを実現するためのライブラリです。自分でルートとコンポーネントの対応を設定する必要があります。その分柔軟性があり、複雑なルーティングにも対応可能です。


import { BrowserRouter, Routes, Route } from "react-router-dom";
import Home from "./Home";
import About from "./About";

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </BrowserRouter>
  );
}

export default App;
(React Routerでは、URLと表示するコンポーネントを自分で設定する必要があります)

3. Pages Routerの自動ルーティングの仕組み

3. Pages Routerの自動ルーティングの仕組み
3. Pages Routerの自動ルーティングの仕組み

Next.jsでは、pagesフォルダ内の構造がそのままURLになります。例えばpages/blog/first.jsというファイルを作ると、自動で「/blog/first」というURLになります。この自動生成により、初心者でも迷わずページを追加できます。


import React from "react";

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

export default FirstPost;
(ブラウザで「/blog/first」と入力すると、このページが表示されます)

4. React Routerの柔軟なルーティング

4. React Routerの柔軟なルーティング
4. React Routerの柔軟なルーティング

React Routerは、パラメータ付きルートやネストルートなど柔軟なルーティングが可能です。例えばユーザーIDに応じてページを切り替える場合など、動的ルーティングが得意です。


import { BrowserRouter, Routes, Route, useParams } from "react-router-dom";

function User() {
  const { id } = useParams();
  return <h1>ユーザーID: {id}</h1>;
}

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/user/:id" element={<User />} />
      </Routes>
    </BrowserRouter>
  );
}

export default App;
(ブラウザで「/user/123」と入力すると「ユーザーID: 123」と表示されます)

5. Pages RouterとReact Routerの使い分け

5. Pages RouterとReact Routerの使い分け
5. Pages RouterとReact Routerの使い分け

簡単に言うと、Next.jsのPages Routerは自動でURLを作りたいときに便利です。逆にReact Routerは、自分で細かくルーティングを制御したい場合や複雑な条件分岐が必要なときに向いています。


import React from "react";

// Next.js Pages Routerならファイル作るだけ
function Contact() {
  return <h1>お問い合わせページです</h1>;
}

export default Contact;
(Next.jsではpages/contact.jsを作成するだけで「/contact」が使えます)

6. Next.jsでReact Routerを使うことはできる?

6. Next.jsでReact Routerを使うことはできる?
6. Next.jsでReact Routerを使うことはできる?

Next.jsでもReact Routerを導入して使うことはできますが、基本的には推奨されません。Pages Routerの仕組みで十分対応できることが多く、ライブラリを追加すると設定が複雑になりやすいためです。


import { BrowserRouter, Routes, Route } from "react-router-dom";

function MyNextApp() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<h1>ホームページ</h1>} />
      </Routes>
    </BrowserRouter>
  );
}

export default MyNextApp;
(Next.jsでは基本的にPages Routerを使うのが自然です)

7. まとめのポイント

7. まとめのポイント
7. まとめのポイント

Next.js Pages Routerは初心者向けで、ファイルを作るだけで自動でルーティングされます。React Routerは柔軟性が高く、複雑なルートや動的ルートを作るのに便利です。状況に応じて使い分けるのが基本です。

まとめ

まとめ
まとめ

今回の記事では、Next.jsのPages RouterとReact Routerの違いについて初心者向けに詳しく解説しました。Next.jsのPages Routerは、プロジェクト内のpagesフォルダにファイルを作成するだけでURLが自動生成され、初心者でも迷わずルーティングを実装できるのが大きなメリットです。一方、React Routerは自分でルートとコンポーネントの対応を設定する必要がありますが、その分柔軟性が高く、動的ルートやネストルートなど複雑なルーティングに対応できることが特徴です。

さらに、Next.jsでは基本的にPages Routerを使うことで開発効率を高めることができますが、特定の条件下でReact Routerを導入することも可能です。しかし、ライブラリを追加することで設定が複雑になりやすいため、基本はPages Routerで十分対応できることを覚えておきましょう。React Routerは特に、ユーザーIDやカテゴリなど動的に切り替えるページを作成したい場合や、複雑な条件分岐を実装したい場合に活用すると良いです。

また、Next.jsのPages Routerの自動ルーティングでは、pagesフォルダ内のフォルダ階層がそのままURL構造になるため、SEOにも効果的です。検索エンジンがページ構造を理解しやすくなるため、ユーザーが求める情報にアクセスしやすくなります。一方、React Routerは動的ルートを多用する場合、URL構造が複雑になることがあり、SEO対策を意識する場合はNext.jsのPages Routerとの組み合わせや、静的生成とサーバーサイドレンダリングの活用が望ましいです。

具体的なサンプルとして、Next.jsでは以下のようにファイルを作成するだけで簡単にルーティングが可能です。


import React from "react";

function Services() {
  return <h1>サービスページです</h1>;
}

export default Services;
(pages/services.jsとして保存するだけでブラウザで「/services」と入力すると表示されます)

React Routerでは、動的ルートや複雑な条件分岐も自分で設定できます。例えばユーザーIDによってページを切り替える場合は以下のように書きます。


import { BrowserRouter, Routes, Route, useParams } from "react-router-dom";

function Profile() {
  const { userId } = useParams();
  return <h1>ユーザーID: {userId}</h1>;
}

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/profile/:userId" element={<Profile />} />
      </Routes>
    </BrowserRouter>
  );
}

export default App;
(「/profile/001」と入力すると「ユーザーID: 001」と表示されます)

まとめると、Next.jsのPages Routerは自動ルーティングで初心者でも迷わずページ追加ができるのが最大の強みです。React Routerは柔軟性が高く、複雑なルートや動的ルートに向いています。状況に応じて両者を理解し使い分けることで、効率的かつ柔軟なReactアプリ開発が可能になります。

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

生徒

「先生、今回の記事でPages RouterとReact Routerの違いがよくわかりました。Next.jsは自動ルーティングで簡単にページを作れるけど、React Routerは柔軟にルートを設定できるんですね。」

先生

「その通りです。初心者の場合はNext.jsのPages Routerで始めるのが簡単でおすすめです。一方、動的ルートや条件分岐が必要な場合はReact Routerを使うと便利ですよ。」

生徒

「SEOの観点からもPages Routerの方が構造がわかりやすくて良いんですね。」

先生

「そうですね。URL構造が整理されていると検索エンジンもページを理解しやすくなります。React Routerを使う場合は、必要に応じて静的生成やサーバーサイドレンダリングを組み合わせると良いでしょう。」

生徒

「なるほど、状況に応じて使い分けることが大切なんですね。次回からはPages RouterとReact Routerの両方を意識してプロジェクトを作ってみます。」

先生

「そうです。その通り。両方の特性を理解しておくと、ReactやNext.jsの開発がより効率的になります。今回のまとめを復習しておくとさらに理解が深まりますよ。」

カテゴリの一覧へ
新着記事
New1
Next.js
Next.js Pages Routerでページごとのレイアウトを簡単に実現する方法!初心者向け完全ガイド
New2
Next.js
Next.js Pages RouterとReact Routerの違いを初心者向けに徹底解説!Next.jsルーティング入門
New3
React
ReactのuseEffectでローディング状態を管理する方法を解説!初心者でもできる非同期処理の基本
New4
React
Props drillingとは?ReactのContext APIで解決する方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.2
Java&Spring記事人気No2
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.3
Java&Spring記事人気No3
Next.js
Next.jsのRoute Groupの使い方を完全ガイド!App Routerでフォルダ構成を整理する方法
No.4
Java&Spring記事人気No4
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.5
Java&Spring記事人気No5
React
ReactでAxiosのPUT・DELETEリクエストを完全ガイド!初心者でもわかるAPI通信の基本
No.6
Java&Spring記事人気No6
React
コンポーネントの作り方!基本的な書き方と使い方をReact初心者向けに解説
No.7
Java&Spring記事人気No7
React
ReactのJSXとJavaScriptの違いを完全ガイド!初心者でもわかるReactのJSX入門
No.8
Java&Spring記事人気No8
React
ReactでPropsの型チェックをする方法(PropTypesとTypeScript)をやさしく解説