フロントエンドの用語一覧へ
このページの目次
フロントエンド中級図解あり

SPAとは?

読み方:えすぴーえー

最終更新:2026/08/18

3秒でわかる

最初に読み込んだ 1 枚の HTML の上で、JavaScript が中身を差し替えて画面を切り替える Web アプリの作り方です。

30秒図解

SPAは最初の1回だけ1枚のHTMLとJavaScriptを受け取り、以後はURLとDOMの必要な部分をブラウザ内で切り替える
SPAは最初に受け取った1枚のHTMLを保ち、URLとDOMの変わる部分だけをブラウザで入れ替えます。直URLにはindex.htmlを返す設定が必要です。

もう少し詳しく

どういうものか

Single Page Application の略。従来の Web サイトはリンクを押すたびにサーバーから新しい HTML を受け取り、ページ全体を読み直していた。SPA では最初の 1 回だけ HTML と JavaScript を受け取り、以降の画面切り替えは JavaScript が DOM を書き換えて行う。サーバーとは必要なデータだけを JSON でやり取りする。

React、Vue、Angular で作られたアプリの多くがこの形になる。Gmail や Google マップのように、操作しても画面全体が白く点滅しないサイトは、たいてい SPA と考えてよい。

なぜ必要か

画面遷移のたびにヘッダーやサイドバーまで送り直すのは無駄が多い。SPA は変わる部分だけを描き直すため、体感速度が上がる。加えて、入力途中の状態や開いたタブの位置といった情報が遷移をまたいで保てるので、業務システムのような操作の多い画面と相性がよい。

具体例

React Router で 2 画面を切り替える最小の形。

import { BrowserRouter, Routes, Route, Link } from "react-router-dom"; function App() { return ( <BrowserRouter> <nav> <Link to="/">一覧</Link> <Link to="/detail/1">詳細</Link> </nav> <Routes> <Route path="/" element={<ItemList />} /> <Route path="/detail/:id" element={<ItemDetail />} /> </Routes> </BrowserRouter> ); }

Link を押しても通信は発生せず、History APIURL を書き換えたうえで表示する部品だけを入れ替えている。

つまずきやすいところ

サーバー設定の抜けが最も多い。/detail/1 を直接開いたりリロードしたりすると、そのパスのファイルはサーバーに存在しないため 404 になる。どのパスへのアクセスでも index.html を返す設定が要る。

検索エンジン対策も課題になる。中身が JavaScript 実行後にしか存在しないため、クロールの結果が安定しない。SEO が重要なページは、Next.js のようなサーバーサイドレンダリングを併用する構成が選ばれる。

最初に読み込む JavaScript が大きくなりがちな点も見落とされやすい。初回表示だけは、素の HTML より遅くなることがある。

似た用語との違い

方式HTML を作る場所初回表示遷移の速さ
MPAサーバー速い毎回読み直し
SPAブラウザ遅め速い
SSRサーバーで生成しブラウザで引き継ぐ速い速い

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地SPAフロントエンド

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

Reactコースの全編を見る