路由
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>NT${item.price}</p>
<Link href="/items">← 返回列表</Link>
</div>
)
}比較
截至 2026 年 10 月