Vueルータールーティングガードの詳細な説明

Vueルータールーティングガードの詳細な説明

1. グローバル beforeEach

ローカルストレージに保存されている名前がzhangsanの場合、メッセージの内容はメッセージがクリックされたときにのみ表示されます。

1. グローバル beforeEach

ルーターにルーティングガードを追加する

文法:

router.beforeEach((to, from, next)=>{})

機能: 初期化中および各ルートスイッチの前にbeforeEachで関数を呼び出す

パラメータ:

1.to: ターゲットルート

2.from: ジャンプ前のルート

3.次へ: リリース

2. 実装

2. 要件2

ジャンプする前に判断する必要があるパスが多数ある場合、多くの判断コードを記述する必要があり、判断構造が非常に複雑になります。

このとき、判定が必要なルートにメタタグを入れることができます。

メタタグはHTML文書に関するメタデータを提供します(メタデータとは、データを説明するために使用されるデータのことです)

この時点で、メタのタグフィールドを使用して判断することができます

3. グローバルポストガード afterEach

afterEach と beforeEach の使い方は基本的に同じです。

違いは、afterEachにはnextパラメータがないことです。

1. タイトルを自分のタイトルに変更する

各ルートに独自のタイトル名を割り当てる

const ルーター = 新しい VueRouter({
  ルート: [
    {
      名前: 'ホーム',
      パス: '/home',
      コンポーネント: ホーム、
      メタ: {
        タイトル: 「ホーム」
      },
      子供たち: [ 
        {
          名前: "xiaoxi",
          パス: 'メッセージ',
          コンポーネント: メッセージ、
          メタ: {
            タイトル: 「ニュース」
          },
          子供たち: [
            {
              名前: 'xiangqing',
              パス: '詳細',
              コンポーネント: 詳細、
              メタ: {
                isAuth: 真、
                タイトル: 「メッセージの詳細」
              }
            }
          ]
        }
      ]
    },
    {
      パス: '/about',
      コンポーネント: について、
      メタ: {
        タイトル: 「概要」
      }
    }
  ]
})

beforeEachのタイトル名を変更する

router.afterEach((to, from) => {
  document.title = to.meta.title || "テスト"
})

4. コンポーネント内の保護

1. ルートに入る前

ルーティングルールを通じてこのコンポーネントに入るときに呼び出されます

2. ルートを離れる前に

ルーティングルールを通じてコン​​ポーネントを離れるときに呼び出されます

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue でのルーティングガードの具体的な使用法
  • Vue2.0はナビゲーションガード(ルートガード)を実装します
  • Vue のフック機能 (ルートナビゲーションガード、キープアライブ、ライフサイクルフック) の詳細な説明
  • Vue のルーティングガードとキープアライブライフサイクルの詳細な説明

<<:  CSSアニメーションを途中で止めて姿勢を維持する方法

>>:  mysql5.6 マスタースレーブ設定と非同期の問題の詳細な説明

推薦する

Reactコンポーネントのライフサイクル機能についての簡単な説明

React コンポーネントのライフサイクル機能とは何ですか?ライフサイクル関数は、ES6 構文クラス...

Div CSS 命名標準 CSS クラスの命名規則 (SEO 標準に準拠)

検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...

VS2019 が mysql8.0 データベースに接続する方法 (画像とテキスト付き)

1. まず、VS2019とMySQLデータベースを準備します。どちらも公式サイトからダウンロードで...

Mac に MySQL データベースをインストールし、環境変数を設定するためのグラフィック チュートリアル

目次MySQLをインストールする環境変数の設定MySQLをインストールするmysqlをダウンロードし...

CSS ハート型読み込みアニメーションのソースコードの実装

さっそく、コードをお見せしましょう。コードは非常にシンプルなので、勉強すれば理解できるようになります...

nginxでgzip圧縮を有効にする手順を完了する

目次序文1. gzip圧縮を設定する2. 詳細設定3. nginxサービスを再起動する要約する序文ウ...

JS ES6コーディング標準の詳細な説明

目次1. ブロックスコープ1.1. let は var を置き換える1.2. グローバル定数とスレッ...

CSS3 3Dクールキューブ変形アニメーションの実装

私はコーディングが大好きです。コーディングすると幸せになります!みなさんこんにちは、Counterで...

SCSS スタイルのコードを 50% 削減する 14 の実践的な経験

序文Sass は CSS3 言語の拡張機能です。Sass を使用すると、より良いスタイルシートをより...

Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由

目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...

HTML フォームタグチュートリアル (4):

ここで、次のような項目をフォームに追加したいとします: 現在いる都市を参照します。ここで私たちが話し...

iostat を使用して Linux ハードディスクの IO パフォーマンスを表示する方法

TOP 観察: IO 待機に占められる CPU 時間の割合。30% を超えると、IO の負荷が高くな...

Django2.* + Mysql5.7 開発環境統合チュートリアル図

環境: 10.12 の新機能Python 3.6 MySQL 5.7.25 の場合ジャンゴ 2.2....

HTMLポップアップ透明レイヤーインスタンスのサイズを設定でき、比例することができます

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Docker イメージのローカル Elasticsearch ポート操作へのアクセス

dockerスタックによってデプロイされたイメージサービスを使用すると、イメージを入力した後、理論的...