静的と動的(SSG / SSR)
なぜ学ぶか: 「このページは、いつHTMLになるのか?」— Next.jsを理解する本質的な問いです。答えは2つ+α。飲食店の「作り置き」と「注文後調理」の関係に似ています。
まずはこの例を見てみましょう
① 静的(SSG)= 作り置き ビルド時に HTML を作っておき、アクセスが来たら配るだけ → 最速・最安。全員に同じ内容ならこれ 例: ブログ記事、この learn アプリのトピックページ ② 動的(SSR)= 注文後調理 アクセスが来るたびに HTML を作る → 人によって内容が違うページはこれ 例: ログイン後のマイページ ③ おまけ(ISR)= 作り置き+定期的に作り直し export const revalidate = 3600; と書くと1時間ごとに更新
判断基準はひとつ:「誰が見ても同じ内容か?」。同じなら作り置き(静的)が最適です。
静的(SSG)=最速・最安
全員に同じ内容でよいページは作り置きが最適。完成品を配るだけなので速く、サーバー負荷もほぼゼロです。
動的(SSR)=人や時で変わる
ログインユーザーごとに違う画面などは、アクセス時に作ります。
レビュー観点
全員同じ内容なのに毎回生成しているページは無駄(遅い・高い)。「これは静的にできない?」がコスト最適化の第一歩です。
コード例
// ===== ① 静的(SSG)=====
// 全員同じ内容 → ビルド時に作り置き(既定でこちらに最適化される)
export default function AboutPage() {
return <h1>このサイトについて</h1>;
}
// ===== ② ISR(ページに1行足すだけ)=====
// 「3600秒ごとに作り直される静的ページ」になる
// export const revalidate = 3600;このlearnアプリの99トピックも、ビルド時にすべて作り置き(SSG)されています。表示が速いのはそのためです。
ステップ 1 / 2
※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。