1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SPA(Single Page Application)の基本と簡単な例

Last updated at Posted at 2024-02-16

はじめに

ウェブ開発の世界では、SPA(Single Page Application)が注目を集めています。この記事では、SPAの概念を初心者にも分かりやすく説明し、簡単なコード例を通じてその動作を理解します。

SPAとは?

SPAとは、「Single Page Application」の略で、一つのウェブページで完結するアプリケーションのことを指します。SPAは、文字通り「一枚のウェブページ」で動くアプリケーションです。従来のウェブサイトのように、リンクをクリックするたびに新しいページに移動してロードするのではなく、SPAでは最初にページ全体を読み込んだ後、ユーザーが何か操作をするたびに必要なデータだけを更新して、ページの一部分だけを動的に変えていきます。

SPAの利点

高速なページ遷移:全ページリロードの必要がないため、ユーザー体験が向上します。
良好なユーザー体験:動的なコンテンツ更新により、アプリケーションがよりインタラクティブになります。
サーバー負荷の軽減:初期ロード後は、必要なデータのみをサーバーから取得します。

SPAのコード例

簡単なSPAを作成するために、HTML、CSS、およびJavaScript(特にVue.jsを使用)を用います。Vue.jsは初心者にも扱いやすく、SPAの概念を理解するのに適したフレームワークです。

HTML
HTML部分は、アプリケーションの構造を定義します。下記の例では、div id="app" がSPAのルートコンテナとして機能します。ナビゲーションメニューと、動的に切り替わるコンテンツエリア(Home PageとAbout Page)が含まれています。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Simple SPA Example</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="app">
        <nav>
            <ul>
                <li><a href="#" v-on:click="view = 'home'">Home</a></li>
                <li><a href="#" v-on:click="view = 'about'">About</a></li>
            </ul>
        </nav>
        <div v-if="view === 'home'">
            <h1>Home Page</h1>
            <p>Welcome to the Home Page.</p>
        </div>
        <div v-if="view === 'about'">
            <h1>About Page</h1>
            <p>This is a simple SPA example using Vue.js.</p>
        </div>
    </div>

    <script src="https://unpkg.com/vue@next"></script>
    <script src="app.js"></script>
</body>
</html>

CSS (style.css)

body, html {
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;
}

nav ul {
    list-style-type: none;
    padding: 0;
}

nav ul li {
    display: inline;
    margin-right: 10px;
}

a {
    text-decoration: none;
    color: blue;
}

a:hover {
    text-decoration: underline;
}

JavaScript (app.js)
JavaScript部分は、SPAの動的な挙動を管理します。この例ではVue.jsを使用しています。

const { createApp } = Vue;

createApp({
    data() {
        return {
            view: 'home' // 初期ビューを設定
        };
    }
}).mount('#app');

この例では、Vue.jsを使用して、ユーザーが「Home」と「About」の間でナビゲーションするときにページ全体をリロードせずにコンテンツを切り替えることができます。JavaScriptの力で、ページ内の特定の部分だけを動的に更新しています。

まとめ
SPAは、現代のウェブ開発において重要な概念です。この記事がSPAの基本とその構成要素を理解する一助となり、さらに深く学ぶきっかけになれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?