SPAとは?シングルページアプリケーションの仕組み・MPAとの違いを2分で解説

SPAとは?シングルページアプリケーションの仕組み・MPAとの違いを2分で解説

2025.7.3 2026.6.15

この記事は約2 分で読めます


「シングルページ」なのに、なぜ複数のページがあるのか?

SPAの名前の由来から仕組み、MPAとの違い、メリット・デメリットまで。

図解でビギナー向けにわかりやすく解説。

三好アキ プロフィール写真

筆者三好アキ(専門用語なしでプログラミング)

私について詳しくは → 自己紹介

MPAからSPAへ

前回の記事では「MPA(マルチ・ページ・アプリケーション)」を紹介しました。

そしてMPAには、「ページの表示に時間がかかる」という問題があることにも触れました。

ページが移動するたびに毎回サーバーとのやりとりが発生するからです。

図にすると下図のようになっています。

mpa.png

ここを改善したものが、本記事で紹介する「SPA(シングル・ページ・アプリケーション)」です。

登場時期
MPA(マルチ・ページ・アプリケーション)SPA以前(2000年ごろ)
SPA(シングル・ページ・アプリケーション)2010年ごろ

SPAの仕組み

SPAの仕組みを示したものが次図です。

spa.png

SPAでは、ページ描画をJavaScriptがクライアント(ブラウザ)側で行うため、ページ移動のたびにサーバーとやりとりをする必要はなく、ページをすばやく表示できるのです。

しかし、SPAにもマイナス面がひとつあります。

ページの初回表示に時間がかかることです。

サーバーは最初のリクエストがあったとき「からっぽのHTMLファイル(index.html)」と、大量のJavaScriptをクライアントに送ります。まずここで時間がかかります。

さらに、クライアントがこれらを受け取ったあとには、HTMLファイルを下敷きにしてページをJavaScriptで組み立てる作業が始まりますが、ここでもさらに時間がかかります。

この結果、ブラウザには何もない真っ白なページ(=からっぽのHTMLファイル)がしばらく映っていることになるのです。

image

⚫︎ monotein.base.shop/p/00005

メリット/デメリット

MPAでは、初回表示時を含め、ページ移動時には毎回時間がかかります。

一方SPAでは、ページ移動は素早く行えるものの、初回ページ表示時に時間がかかるのです。

ここを改善したものが、次の記事で紹介するSSR(サーバー・サイド・レンダリング)というものです。


なお、SPAについてもう少し掘り下げて理解したい方は下記記事をご覧ください。

「静的サイト・動的サイトの時代からどうSPAが生まれたのか」、そして「SPAのメリット・デメリット」を、より詳しく追った記事です▼

SPAサイトとは?仕組み・メリット・デメリット・実例を2分で解説

参考情報①(「からっぽのHTMLファイル」のコード例)

SPAの初回リクエスト時に送られてくる「からっぽのHTMLファイル」とは次のようなものです。

<body>タグ内にはJavaScriptを読み込むコードしかなく、ブラウザで表示する具体的なものが何もないのがわかります。

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8" />
        <meta name="description" content="お天気アプリです" />
        <title>SPA</title>
    </head>
    <body>
        <div id="root"></div>
        <script type="module" src="/main.js"></script>
    </body>
</html>

参考情報②(なぜ「シングル」?)

SPA(シングル・ページ・アプリケーション)の具体例は、GoogleマップやGメール、Facebookなどです。

しかしここで多くの人が疑問に思うことがあります。

「アプリ内には複数のページがあるのに(/home/aboutなど)、なぜ「シングル・ページ」という名前が使われているの?」という疑問です。


これまでに「React + Vite」や「create-react-app」などを使ったことのある人は、フォルダ内にindex.htmlというファイルがあったことに気がついたかもしれません。

SPAはこのindex.htmlという一枚のHTMLファイル(シングル・ページ)を下敷きとして、JavaScriptで描写を行っているのです。

「シングル・ページ」という言葉は、使われているHTMLファイルが一枚(シングル)ということに由来しています。

SPAの次に現れたSSR(サーバーサイドレンダリング)は下記記事をご覧ください▼


SPA(React + Vite)の開発環境のセットアップから学習の進め方まで、まとめたガイドはこちらです▼


SPAの次のステップであるSSR・RSCまで、技術の進化の流れをReact 19の新機能も含めて一本でまとめたガイドもあります。

参考にしてください▼


SPAの課題をSSR・RSCで解決するNext.jsの全体像(セットアップから各機能の使い方、デプロイまで)はこちらのガイドでまとめて確認できます▼


仕組みは分かりましたが、自分の学習が前に進みません

SPAのような概念を理解できても、React学習そのもので手が止まってしまう人は少なくありません。

今の状況を教えていただければ、どこを補えば先に進めるか、次に何を学べばいいかを個別にお答えします。

下のフォームからご連絡ください。

三好アキが直接、目を通してお返事します(無料)。

学習のお悩み相談

プログラミング学習で今つまずいていること、困っていること......あなたの状況に合ったアドバイスを無料でご提供します。

Q1. 現在の状況(ひとつ選択)必須
Q2. いちばん困っていること(ひとつだけ選択)必須
Q3. これまでの学習手段(あてはまるものすべて選択)
Q4. 無料相談を希望しますか?
Q5. 自由記述(任意)

ご相談への返事をお送りするために使用します。こちらから営業メールや勧誘をお送りすることはありません。