【えすぴーえー(しんぐるぺーじあぷりけーしょん)】
SPA(シングルページアプリケーション) とは?
💡 ページを丸ごと読み直さず、必要な部分だけ書き換えるウェブアプリ
📌 このページのポイント
SPAって普通のウェブサイトと何が違うの?
従来のウェブサイトはページを移動するたびに「新しいHTMLをサーバーからもらう→画面を丸ごと再描画」を繰り返す。SPAは最初の1回だけHTMLを読み込んで、あとはJavaScriptが必要な部分だけを書き換えるんだ。だから画面の切り替えがスムーズで、スマホアプリのような操作感になるよ。
どんなサービスがSPAを使っているの?
SEOに弱いって聞いたけど?
昔の検索エンジンはJavaScriptを実行しないから「画面が空」に見えていた。今はGoogleもJavaScriptを実行してインデックスするけど、タイムラグや制限がある。だからSEOが重要なコンテンツはSSRでHTMLを返す手法と組み合わせることが多いんだよ。
SPAの初回表示が遅いのってどうにかならないの?
いくつか対策があるよ。コード分割(Code Splitting)でページごとにJavaScriptを分けて最初のダウンロード量を減らす方法、SSR/SSGとSPAを組み合わせるハイブリッド方式、Service Workerでキャッシュする方法などがある。Next.jsやNuxtはこのあたりの最適化を自動でやってくれるんだ。
SPAだとブラウザの戻るボタンがうまく動かないことがあるけど、なぜ?
まとめ:ざっくりこれだけ覚えればOK!
「SPA」って出てきたら「ページ全体を読み直さずJavaScriptで画面を切り替えるウェブアプリの方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Single Page Application」 = 単一ページのアプリケーション
💬 「Single(単一の)+ Page(ページ)+ Application(アプリケーション)」。HTMLファイルは1枚だけで、その中身をJavaScriptが動的に書き換えることから命名されたよ