vue-router について
Vue 2およびVue 3プロジェクトでVue Routerを設定するためのリファレンススキルです。ルート構成、ナビゲーションガード、プログラムによる遷移、遅延読み込み、ルートメタデータを扱います。
主な機能
- 01Vue 2とVue 3のルーティング
- 02動的ルートとネストルート
- 03ナビゲーションガード
- 04プログラムによる画面遷移
- 05遅延読み込みとルートメタデータ
活用シーン
- 01Vueアプリへのルート追加
- 02権限確認による画面遷移制御
- 03ページコンポーネントの遅延読み込み
- 04ルートメタデータによるレイアウト制御
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill vue-routerインストール後、Claude Code で/vue-routerを入力して読み込まれたか確認します。
同梱ファイルLICENSE.txt
詳細
このスキルを使うタイミング
次のことをユーザーが希望する場合は、いつでもこのスキルを使用してください。
- Vue 2 または Vue 3 プロジェクトでルーティングを設定する
- 動的ルート、ネストされたルート、名前付きルートを実装する
- ナビゲーションガード(beforeEach、beforeResolve、afterEach)を設定する
router.push、router.replaceを使ってプログラムによるナビゲーションを実装する- コード分割のために遅延読み込みルートを実装する
- 権限やレイアウト制御のためにルートの meta フィールドを扱う
このスキルの使い方
ワークフロー
- Vue のバージョンを特定する(Vue 2 は Vue Router 3.x、Vue 3 は Vue Router 4.x を使用します)
- 適切な API でルートを設定する
- 認証と認可のためにナビゲーションガードを追加する
- 大きなページコンポーネントの遅延読み込みを実装する
1. Vue Router 4(Vue 3)のセットアップ
import { createRouter, createWebHistory } from 'vue-router';
const routes = [
{ path: '/', component: () => import('./views/Home.vue') },
{ path: '/users/:id', component: () => import('./views/UserDetail.vue'), props: true },
{
path: '/admin',
component: () => import('./views/Admin.vue'),
meta: { requiresAuth: true },
children: [
{ path: 'dashboard', component: () => import('./views/AdminDashboard.vue') },
],
},
];
const router = createRouter({
history: createWebHistory(),
routes,
});
// Navigation guard
router.beforeEach((to, from) => {
if (to.meta.requiresAuth && !isAuthenticated()) {
return { path: '/login' };
}
});
export default router;
2. Vue Router 3(Vue 2)のセットアップ
import Vue from 'vue';
import VueRouter from 'vue-router';
Vue.use(VueRouter);
const router = new VueRouter({
mode: 'history',
routes: [
{ path: '/', component: () => import('./views/Home.vue') },
{ path: '/about', component: () => import('./views/About.vue') },
],
});
3. プログラムによるナビゲーション
// Vue 3 with Composition API
import { useRouter } from 'vue-router';
const router = useRouter();
router.push({ name: 'user', params: { id: '123' } });
router.replace('/home');
router.go(-1);
ベストプラクティス
- 権限チェック用のルートガードを一元化し、大きなページコンポーネントは遅延読み込みします
- 型安全なナビゲーションには
params/queryを使った名前付きルートを使用し、ルートに機密データを保存しないでください - すっきりした URL を実現するには
createWebHistoryを優先し、HTML5 history モード用のサーバー側フォールバックを設定します - レイアウト制御、パンくずリスト、アクセス制御にはルートの
metaフィールドを使用します
リソース
- Vue Router 4:https://router.vuejs.org/
- Vue Router 3:https://v3.router.vuejs.org/
キーワード
Vue ルーター、ルーティング、ナビゲーションガード、Vue 3、Vue 2、遅延読み込み、動的ルート、ネストされたルート、meta フィールド、プログラムによるナビゲーション、createRouter
コメント
Markdown 対応