SPA
ページ遷移なしに動的にコンテンツを更新する Web アプリケーションのアーキテクチャ
SPA とは
SPA (Single Page Application) は、最初に 1 つの HTML ページを読み込み、以降のページ遷移をブラウザ側の JavaScript で処理する Web アプリケーションのアーキテクチャである。サーバーからは API (JSON) でデータだけを取得し、画面の描画はクライアント側で行う。Gmail、Google Maps、Twitter が代表的な SPA だ。
MPA との比較
MPA との主な違いを以下に比較する。
| 観点 | SPA | MPA (Multi Page Application) |
|---|---|---|
| ページ遷移 | JavaScript で画面を切り替え (高速) | サーバーから新しい HTML を取得 (遅い) |
| 初期ロード | 遅い (JS バンドルのダウンロード) | 速い (HTML だけ) |
| SEO | 対策が必要 (SSR/SSG) | 問題なし |
| UX | ネイティブアプリに近い操作感 | ページ遷移のたびに白画面 |
| サーバー負荷 | API のみ (軽い) | HTML 生成 (重い) |
SPA の動作フロー
SPA の動作フローを図で示す。
1. ブラウザが index.html を取得 (ほぼ空の HTML)
2. JavaScript バンドル (main.js) をダウンロード・実行
3. React/Vue が DOM を構築し、画面を表示
4. ユーザーがリンクをクリック
5. JavaScript が URL を変更 (History API)
6. 対応するコンポーネントを表示 (サーバーへのリクエストなし)
7. データが必要な場合は API (fetch) でサーバーに問い合わせ
S3 + CloudFront でのホスティング
SPA は静的ファイル (HTML, JS, CSS) だけで構成されるため、S3 + CloudFront でホスティングできる。サーバーが不要でコストが最小限だ。
SPA の課題と対策
SEO
SPA の初期 HTML は空 (<div id="root"></div>) のため、検索エンジンがコンテンツを認識できない。
対策:
- SSR (Next.js): サーバーで HTML を生成
- SSG: ビルド時に静的 HTML を生成
- プリレンダリング: クローラー向けに事前レンダリング
初期ロードの遅さ
JavaScript バンドルが大きいと、初期表示が遅くなる。
対策:
- コード分割 (React.lazy): ルートごとにチャンクを分割
- Tree Shaking: 未使用コードを除去
- CDN (CloudFront): エッジからの高速配信
メモリリーク
SPA はページ遷移でリロードされないため、イベントリスナーやタイマーの解除忘れがメモリリークの原因になる。React の useEffect のクリーンアップ関数で適切に解除する。
実践的な知識は関連書籍でも得られる。
この記事は役に立ちましたか?
関連用語
SSR/SSG
サーバーサイドレンダリングと静的サイト生成 - Web ページの生成タイミングと場所を制御するレンダリング戦略
SPA ルーティングとは - React/Vue/Angular でのページ遷移の仕組み
SPA ルーティングは URL とコンポーネント表示を同期させページ遷移なしで画面を切り替える仕組み。History API・Hash モード・SSR との関係を解説
React
コンポーネントベースの UI ライブラリで、宣言的な記法と仮想 DOM で効率的な UI 構築を実現する
HTML
Web ページの構造を記述するマークアップ言語。Web を成り立たせる基礎技術
Next.js
React ベースのフルスタックフレームワークで、SSR、SSG、API Routes を統合的に提供する
Vue.js
学習しやすさと柔軟さを兼ね備えたフロントエンドの JavaScript フレームワーク
関連する記事
深夜 3 時のデプロイ前に読み返したい 1 ページ
本番デプロイの直前、最終確認のチェックリストとして技術書の特定のページが役立つことがあります。緊張の場面で頼りになる「お守りの 1 ページ」の見つけ方と活用法。
技術書の帯コピーの世界 - 煽り文句に隠されたマーケティング
「10 万部突破」「現場で使える」「これ 1 冊で完璧」。技術書の帯に書かれた煽り文句の法則と、帯が売上に与える影響を解説します。
チーム開発・マネジメント本ガイド - 技術リーダーが読むべき本
チーム開発、1on1、技術マネジメントを学べる技術書の選び方を紹介。メンバー時代からマネージャーまで、段階別の読書ロードマップを解説します。