目次
1 はじめに
Vue
シングルページ アプリケーションの構築に最適です。このようなアプリケーションのほとんどでは、公式にサポートされているアプリケーションを使用することをお勧めしますVue Router
。シングルページ アプリケーションでは、クライアント側 JavaScript がページ ジャンプ リクエストをインターセプトし、新しいデータを動的に取得し、以下の現在のページを更新せずにリロードできます。このようなシナリオではユーザーは長期間にわたって複数回対話することが多いため、通常、これによりユーザー エクスペリエンスがよりスムーズになります。このタイプのシングルページ アプリケーションでは、ルーティングの更新はクライアント側で実行されます。
Vue Router
Vueの正規ルートです。Vue.js コアと深く統合されているため、Vue.js を使用して単一ページのアプリケーションを簡単に構築できます。特徴は次のとおりです。
- ネストされたルート マップ
- 動的ルーティング
- モジュール式のコンポーネントベースのルーティング構成
- ルーティングパラメータ、クエリ、ワイルドカード
- Vue.js のトランジション システムによって提供されるトランジション効果を示します。
- 詳細なナビゲーション制御
- CSS クラス リンクを自動的にアクティブ化する
- HTML5 ヒストリーモードまたはハッシュモード
- カスタマイズ可能なスクロール動作
- URLの正しいエンコード
Vue Router
ここでは基本的な使い方を紹介します。
2 Vueルーターの使用
2.1 インストール
vue3 の場合は、vue-router 4.x 以降を使用することをお勧めします。ノード環境は次のようにインストールされます。
npm install vue-router@4
2.2 はじめに
当社のエンジニアリング プロジェクトでは、通常、その後の使用とメンテナンスを容易にするために、ルーティング ファイルを個別に管理する必要があります。これに基づいて、紹介は 2 つのステップに分かれています。
- 一元管理ルーティングエントリファイルの作成
- vue プロジェクトでは、ルーティング エントリ ファイルの使用が導入されています。
2.2.1 ルーティングファイルの作成
main.ts ファイルと同じディレクトリに router フォルダーを作成し、index.ts ファイルを追加します (ts を使用します。js についても同様です)。
ファイルの内容は次のとおりです。
import {
createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
import Home from "../views/Home.vue";
// 项目其他页面路由(推荐使用)
import Practice from "../router/practiceFolder/practice";
// vue项目自带路由
const routes: Array<RouteRecordRaw> = [
{
path: "/",
name: "Home",
component: Home
},
{
path: "/about",
name: "About",
component: () =>
import(/* webpackChunkName: "about" */ "../views/About.vue")
}
];
const routers = [...routes, ...Practice];
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes: [...routes, ...Practice]
});
export default router;
このうち、それを使用して宣言されたオブジェクトはRouteRecordRaw
ルーティング オブジェクトとみなされ、ルーティング オブジェクト プールに入れられます。
createRouter
ルートを作成します。
createWebHistory
HTML5 モードでのルーティングを表します。これは推奨モードでもあります。
2.2.2 main.ts の概要
コードは以下のように表示されます。
import {
createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
createApp(App)
.use(store)
.use(router)
.mount("#app");
2.3 使用方法
2.3.1 ルータービューの使用
ログイン後、app.vue
構成で単一ページのアプリケーションを使用してrouter-view
ページを切り替えることができます。コードは次のとおりです。
<template>
<router-view v-slot="{ Component }">
</router-view>
</template>
導入後は、Vue インスタンスで$router
ルーティング インスタンスにアクセスできるようになります。別の URL に移動したい場合は、 を使用してthis.$router.push(...)
ジャンプします。
詳しい使用方法は、「vue router-view 使用方法の詳細」router-view
で確認できます。
2.3.2 ルーターリンクの使用
を使用する場合、このメソッドは<router-link>
内部で呼び出されるため、クリックすることは呼び出しと同じです。router.push(...)
<router-link :to="...">
router.push(...)
2.3.3setup
アクセスルーティングと現在のルーティング
setup
内部にアクセスできないため、または にthis
直接アクセスできなくなります。代わりに、および関数を使用します。this.$router
this.$route
useRouter
useRoute
import {
useRouter, useRoute } from 'vue-router'
export default {
setup() {
const router = useRouter()
const route = useRoute()
function pushWithQuery(query) {
router.push({
name: 'about',
query: {
...route.query,
},
})
}
},
}
2.4 その他の API
上記で紹介したVue Router
基本的な APIに加えて、次の API が利用可能です。
- NavigationFailureType : ナビゲーション失敗のタイプ
- START_LOCATION : デフォルトの開始場所
- createMemoryHistory : メモリ履歴モードを使用します。
- createRouterMatcher :
- createWebHashHistory : ハッシュ パターンを作成する
- createWebHistory : html5 モードを作成します
- isNavigationFailure : ナビゲーションが失敗したかどうか
- onBeforeRouteLeave : セットアップで使用されるナビゲーション ガード。現在の位置にあるコンポーネントが出発しようとしているときにトリガーされます。
- onBeforeRouteUpdate : ナビゲーション ガード。セットアップで使用され、現在の場所が更新されようとしているときにトリガーされます。
- parseQuery : クエリパラメータを解析します
- stringifyQuery : 文字列クエリパラメータ
- useLink : RouterLink の内部動作を構成可能な API 関数として公開します。
- useRoute : this.$route を置き換えます
- useRouter : this.$router を置き換えます
この記事では、vue3 ルーティング設定の実際の操作については公式 Web サイトを参照していますが、より包括的な使用方法については、公式 Web サイトのvue routerを参照してください。