0Pricing
Vue Academy · レッスン

SSRとSSGとSPAモード

ssr:true/false、Nitroのprerender、generateコマンド、ルート単位のハイブリッドレンダリング

「SSRとSSGとSPAモード」はCoddyKit上の無料Vue Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはVue Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Vue Academyコースには全4レッスンが含まれています。

レンダリングモードの概要

Nuxtでは、アプリを3つの方法でレンダリングできます。SSR(リクエストごとにサーバーでレンダリング)、SSG(ビルド時にページを事前構築)、SPA(すべてをブラウザでレンダリング)です。ルートごとに組み合わせることもできます。

SSR:デフォルト

ssr: true(デフォルト)では、サーバーがリクエストごとにHTMLをレンダリングし、クライアントがそれをハイドレーションします。これにより初回表示が速く、クローラーに完全なマークアップが見えるためSEOにも優れています。

// nuxt.config.ts
export default defineNuxtConfig({
  ssr: true
})

SSRが適する場面

SSRは、ダッシュボード、フィード、価格がリアルタイムに変わるECサイトなど、頻繁に変更されるコンテンツやパーソナライズされたコンテンツに適しています。リクエストごとに最新のHTMLを提供したい場合に便利です。

SPAモード

ssr: falseを設定すると、Nuxtはシングルページアプリになります。サーバーは空のシェルを送信し、ブラウザがすべてをレンダリングします。ホスティングは簡単になりますが、SEOが弱く、初回表示も遅くなります。

export default defineNuxtConfig({
  ssr: false
})

SPAが適する場面

SPAモードは、SEOが重要ではなく、静的ファイルとして任意のCDNにデプロイしたい社内ツールやログイン後のアプリに適しています。

SSG:静的サイト生成

nuxt generateを実行すると、ビルド時にすべてのページが静的HTMLとして事前レンダリングされます。Nodeサーバーなしでどこにでもホスティングできるファイルのフォルダーが生成されます。

npx nuxt generate
# outputs static HTML to .output/public

SSGが適する場面

SSGは、ブログ、ドキュメント、マーケティングサイトなど、ほとんど変更されないコンテンツに最適です。ページは非常に高速で、CDNから安価に配信できます。

routeRulesによるルート単位のレンダリング

routeRules設定では、パスパターンごとにレンダリングモードを指定できます。これはハイブリッドレンダリングと呼ばれ、1つのアプリの異なる部分で異なる方式を使用できます。

export default defineNuxtConfig({
  routeRules: {
    '/': { prerender: true },
    '/admin/**': { ssr: false },
    '/blog/**': { swr: 3600 }
  }
})

routeRulesの一般的なオプション

prerender: trueはビルド時にページを生成し、ssr: falseはSPAにします。swr: nはSSRの結果をn秒間キャッシュします(stale-while-revalidate)。redirectはユーザーを別の場所へ移動させます。

インクリメンタル静的再生成

isrオプションは、初回リクエスト時に事前レンダリングして出力をキャッシュし、定期的に再生成します。SSGの速度と、人気ページにおけるSSRの鮮度を両立できます。

routeRules: {
  '/products/**': { isr: 600 }
}

戦略の選択

まずは、SEOとインタラクティブ性を両立できるデフォルトとしてSSRを使用します。静的コンテンツにはSSG、非公開アプリにはSPAを使い、パフォーマンスの要件が明らかになったらrouteRulesで個別のルートを調整します。

理解度チェック

レンダリングモードに関する理解度を確認します。

まとめ

レンダリングモードについて学びました。

  • SSR(デフォルト)はリクエストごとにレンダリングし、SEOに優れ、初回表示が速くなります。
  • ssr:falseは、非公開アプリ向けのSPAを実現します。
  • nuxt generateは静的なSSGサイトを生成します。
  • routeRulesではハイブリッドレンダリングが可能になり、ルートごとにprerender、swr、isr、ssr:falseを設定できます。

よくある質問

「SSRとSSGとSPAモード」レッスンは無料ですか?

はい。「SSRとSSGとSPAモード」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Vue Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Vue Academyコースには全4レッスンが含まれています。

「SSRとSSGとSPAモード」で何を学びますか?

ssr:true/false、Nitroのprerender、generateコマンド、ルート単位のハイブリッドレンダリング ブラウザで直接実行するハンズオンコードでVue Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Vue Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのVue Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「SSRとSSGとSPAモード」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このVue Academyレッスンでコードを書いて実行できますか?

はい。すべてのVue Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Nuxt 3のプロジェクト構成とファイルベースルーティング
  2. データ取得:useFetchとuseAsyncData
  3. NuxtのサーバールートとAPIエンドポイント
  4. SSRとSSGとSPAモード
← Vue Academyに戻る