ホームページ >ウェブフロントエンド >jsチュートリアル >Vue-Router パターンとフックの使用方法 (詳細なチュートリアル)
この記事では主に Vue-Router モードとフックの使用方法を紹介しますので、参考にしてください。
前回の記事は衣食住の問題を解決すると言っても過言ではないvue-routerの基本的な使い方を中心に書きました
モード
vue-routerのモードオプションは以下の通りです。主にルーターがインスタンス化されるときに使用されます。
const router = new VueRouter({ mode: 'history', // 两种类型history 还有 hash routes: routes // 可以缩写成routes })
ヒストリーとハッシュの 2 つのモードから選択できます。大まかに比較すると、
モード | 欠点 | |
---|---|---|
使いやすく、バックグラウンドは必要ありません | はURL内にハッシュの形式で存在し、バックグラウンドに送信されません | |
アドレスは明確で、理解しやすく、バックグラウンド処理 | をサポートしますバックグラウンドの協力が必要です |
さらに、履歴モードでバックエンドが 1 対 1 マッピングではなくファジーマッチングを実行する場合は、404 の状況に注意する必要があります。このとき、フロントエンドルーターに404ページを定義する必要があります。
ルーター自体のマッチングは上から下なので、前に一致するルートがあればジャンプします。したがって、次のように、最後に 404 ルートを直接追加できます
let routerConfig = [{ path: '/pages', component: App, children: [{ path: 'demo/step1/list', component: coupon, name: 'coupon-list', meta: { title: '红包' } }] }, { path: '*', component: NotFound, name: 'notfound', meta: { title: '404-页面丢了' } }]
前の一致が見つからない場合、* はすべてを表し、すべてが 404 ページを指すことを意味します
ルーティング フックルーティング フック主にルート変更時に利用者が何らかの特別な処理を行うことで定義され、頼りになります。 。なんて一口でしょう。
一般的に、Vue は 3 つの主要なタイプのフックを提供します
1. グローバル フック
グローバル フック
フックはグローバルです 使用方法は次のとおりです
const router = new VueRouter({ mode: 'history', base: __dirname, routes: routerConfig }) router.beforeEach((to, from, next) => { document.title = to.meta.title || 'demo' if (!to.query.url && from.query.url) { to.query.url = from.query.url } next() }) router.afterEach(route => { })
特定のルート用の排他的なフック
前述したように、これは特定のルートに対して単独で使用され、後続のコンポーネントのフックと本質的に同じです。これらはすべて特定のルートを指します。違いは、ここでの一般的な定義はコンポーネントではなくルーターにあるということです。次のように
const router = new VueRouter({ routes: [ { path: '/foo', component: Foo, beforeEnter: (to, from, next) => { // ... }, beforeLeave: (to, from, next) => { // ... } } ] })
コンポーネント内フック
まずは公式の定義を見てください:
ルーティングコンポーネントで次のルートナビゲーションフックを直接定義できます beforeRouteEnterbeforeRouteLeave
まずルーティング コンポーネントとは何なのか見てみましょう。
ルート内でのフックの使い方を振り返ってみましょう とてもシンプルで簡単です。データとメソッドと同じレベルです
beforeRouteLeave(to, from, next) { // .... next() }, beforeRouteEnter(to, from, next) { // .... next() }, beforeRouteUpdate(to, from, next) { // .... next() }, computed: {}, method: {}3 つのルーティング フックには、すべて 3 つのパラメータが含まれています : Route: これから入力するターゲット ルーティング オブジェクトです。 Route: 現在のナビゲーションは Router を出ようとしています
以上がVue-Router パターンとフックの使用方法 (詳細なチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。