Vue Routerを使ってシングルページアプリケーション(SPA)を構築する

Vue Routerを使ってシングルページアプリケーション(SPA)を構築する

Vue Routerを活用することで、シングルページアプリケーション(SPA)におけるページ遷移を効率的に管理できます。本記事では、Vue Routerの基本的な使い方から高度なルーティング戦略までを詳しく説明します。

Vue Routerのインストール

Vue Routerをプロジェクトに追加する方法を示します。

npm install vue-router

基本的なルーティング設定

シンプルなルート定義の例です。

import { createRouter, createWebHistory } from 'vue-router';
import Home from './components/Home.vue';
import About from './components/About.vue';

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About }
];

const router = createRouter({
  history: createWebHistory(),
  routes
});

export default router;

ルーターをVueアプリに登録

ルーターをVueアプリケーションに組み込みます。

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

const app = createApp(App);
app.use(router);
app.mount('#app');

ルーターリンクの使用

ページ遷移用のリンクコンポーネントを使用します。

<template>
  <nav>
    <router-link to="/">ホーム</router-link>
    <router-link to="/about">アバウト</router-link>
  </nav>
  <router-view></router-view>
</template>

動的ルートの設定

動的なパラメータを持つルートを設定します。

const routes = [
  { path: '/user/:id', component: User }
];

動的パラメータへのアクセス

ルートパラメータを取得する方法です。

<template>
  <div>User ID: {{ $route.params.id }}</div>
</template>

ネストされたルート

子ルートを定義して階層的に管理します。

const routes = [
  {
    path: '/user/:id',
    component: User,
    children: [
      { path: 'profile', component: UserProfile },
      { path: 'posts', component: UserPosts }
    ]
  }
];

名前付きルート

名前付きルートを使用して遷移します。

const routes = [
  { path: '/user/:id', name: 'user', component: User }
];

プログラムによるルーティング

JavaScriptを使用してページを遷移します。

this.$router.push({ name: 'user', params: { id: 123 } });

ガードを使用したルート保護

ナビゲーションガードを使用してルートへのアクセスを制御します。

const routes = [
  {
    path: '/admin',
    component: Admin,
    beforeEnter: (to, from, next) => {
      if (isAdmin()) {
        next();
      } else {
        next('/');
      }
    }
  }
];

404ページの設定

存在しないルートに対するフォールバックページを設定します。

const routes = [
  { path: '/:pathMatch(.*)*', component: NotFound }
];

Vue Routerのパフォーマンス最適化

ルーティングのパフォーマンス向上のためのヒントを説明します。

まとめ

Vue Routerを活用することで、SPAにおけるルーティング管理がシンプルかつ強力になります。基本から高度な技術までを習得し、効率的なナビゲーションを構築しましょう。