← 解説「page.tsx — フォルダをページにする」に戻る
サンプルコードで身につける: page.tsx — フォルダをページにする
解説で学んだ概念を、5つの具体例で確認します。素朴な例から実務寄りの例へと進みます。
1最小の page.tsx
ページとして成立する最小のコードです。コンポーネントを default export することだけが条件で、関数名は自由です。app 直下の page.tsx はトップページ「/」になります。
// app/page.tsx → サイトのトップページ「/」になる
export default function HomePage() {
return <h1>こんにちは</h1>;
}
// 条件は2つだけ。
// 1. ファイル名が page.tsx であること
// 2. コンポーネントを default export していること
// 関数名(HomePage)は何でもよい。
2/about ページを作る
フォルダと page.tsx の組み合わせで特定の URL のページを作る、最も基本的な流れの例です。中身は普通の React コンポーネントなので、見出しや段落を自由に組み立てられます。
// app/about/page.tsx → /about ページ
export default function AboutPage() {
return (
<main>
<h1>私たちについて</h1>
<p>このサイトは Next.js の学習用に作られました。</p>
<p>フォルダ + page.tsx の組み合わせでページが増えていきます。</p>
</main>
);
}
3page.tsx の有無で公開・非公開が決まる
「page.tsx を持つフォルダだけが URL として公開される」という規則を、実行できる形で再現した例です。部品置き場のフォルダが勝手にページにならない、というレッスン本文の安心ポイントを確かめられます。
TypeScript
4複数ページをまとめて作る
ページを増やすときは「フォルダ + page.tsx」を同じパターンで繰り返すだけ、という例です。料金ページと FAQ ページのように、サイトの定番ページはこの単純な繰り返しでどんどん追加できます。
// app/pricing/page.tsx → /pricing
export default function PricingPage() {
return <h1>料金プラン</h1>;
}
// ─────────────────────────────
// app/faq/page.tsx → /faq
export default function FaqPage() {
return <h1>よくある質問</h1>;
}
// どのページも作り方は同じ。
// 「フォルダを作って page.tsx を置く」の繰り返しでサイトが育つ。
5配列から一覧を表示するページ
実務のページは静的な文章だけでなく、データの一覧表示を含むことがほとんどです。page.tsx の中身は普通の React なので、配列を map で並べる定番パターンがそのまま使えることを示す例です。
// app/services/page.tsx → /services(提供サービス一覧)
const services = [
{ id: 1, title: "Web制作", price: "30万円〜" },
{ id: 2, title: "アプリ開発", price: "100万円〜" },
{ id: 3, title: "技術顧問", price: "月10万円〜" },
];
export default function ServicesPage() {
return (
<main>
<h1>提供サービス</h1>
<ul>
{services.map((service) => (
<li key={service.id}>
{service.title} — {service.price}
</li>
))}
</ul>
</main>
);
}