ルーティング
React Router / Next.js
Next.js
新しく作るなら、ページの切り替えだけでなく、検索に強い作りや公開の仕組みまでそろっている。このサイトも Next.js で作っている
見た目をくらべる
同じものを、それぞれのライブラリで作りました。触ってみてください
React Router
書き方をくらべる
コードを書き換えると、右の見た目が変わります
Next.js で同じものを作ると
app/page.tsx → /
export default function Page() {
return <h2>ホーム</h2>
}app/items/page.tsx → /items
import Link from "next/link"
import { items } from "@/data/items"
export default function Page() {
return (
<div>
<h2>商品一覧</h2>
<ul>
{items.map((item) => (
<li key={item.slug}>
<Link href={"/items/" + item.slug}>{item.name}</Link>
</li>
))}
</ul>
</div>
)
}app/items/[slug]/page.tsx → /items/apple など
import Link from "next/link"
import { notFound } from "next/navigation"
import { items } from "@/data/items"
export default async function Page({
params,
}: {
params: Promise<{ slug: string }>
}) {
// URL の [slug] の部分(例:apple)を取り出す
const { slug } = await params
const item = items.find((i) => i.slug === slug)
if (!item) {
notFound()
}
return (
<div>
<h2>{item.name}</h2>
<p>{item.price}円</p>
<Link href="/items">← 一覧に戻る</Link>
</div>
)
}くらべる
2026年10月時点
React Router
公式 ↗特徴
React のアプリにページの切り替えを足すライブラリ。「この URL ならこの画面」という一覧表を、コードで書く。ページの中身はブラウザで組み立てる
向いている場面
すでにある React のアプリにページを足す。ログインして使う管理画面など、検索に出なくていいアプリ
特徴
React でサイトを作るための枠組み。フォルダとファイルの形が、そのまま URL になる(app/basics/page.tsx → /basics)。ページをサーバーで作ってから渡す
向いている場面
検索に出したいサイトを新しく作る。ブログ・お店・サービスの紹介ページなど