ホームページ ウェブフロントエンド Vue.js Vue ルーティング ガードの詳細な説明とその適用シナリオの分析

Vue ルーティング ガードの詳細な説明とその適用シナリオの分析

Jun 09, 2023 pm 04:10 PM
アプリケーションシナリオ分析 詳しい説明 vueルーティングガード

フロントエンド テクノロジの継続的な開発に伴い、開発フレームワークとしての Vue は開発者の間でますます人気が高まっています。 Vue のルーティング メカニズムも、Vue フレームワークの不可欠な部分です。ルーティング システムは、開発者が複雑な単一ページ アプリケーションを構築するのに役立つと同時に、ページ状態とユーザー ナビゲーションを管理する柔軟な方法も提供します。この場合、Vue ルーティング ガードは習得する必要がある知識ポイントになります。

それでは、Vue ルーティング ガードとは何ですか? Vue.js におけるルーティング ガードは、ページ間のジャンプを制御するための仕組みで、主にページ ナビゲーション時の権限確認やステータス管理などに使用されます。 Vue のルート ガードは主に、グローバル ルート ガード、ルート専用ガード、コンポーネント レベル ガードの 3 つのタイプに分類されます。

グローバル ルート ガード:

グローバル ルート ガードとは、すべてのルートが変更されたときに実行する必要があるコードのブロックを意味します。グローバル ルート ガードには主に 3 つのタイプがあります。

  1. beforeEach(to、from、next)

ルートに入る前に呼び出され、権限の検証やその他の操作を実行できます。 to および from パラメータは、それぞれ、入力しようとしているルーティング オブジェクトとこれから出力しようとしているルーティング オブジェクトを表します。

サンプル コードは次のとおりです。

router.beforeEach((to, from, next) => {
  // 进行权限验证等操作
  if (to.meta.requireAuth) {
    if (localStorage.getItem('token')) {
      next();
    } else {
      next({
        path: '/login',
        query: {redirect: to.fullPath}
      })
    }
  } else {
    next();
  }
})
ログイン後にコピー
  1. afterEach(to, from)

はルートに入った後に呼び出され、通常は操作に使用されます。ログ記録など。

サンプル コードは次のとおりです。

router.afterEach((to, from) => {
  // 记录日志等操作
})
ログイン後にコピー
  1. beforeResolve(to, from, next)

ルートが解析された後に呼び出し、遅延のみを使用します。ルートの読み込み 場合によっては便利です。

サンプルコードは以下のとおりです:

router.beforeResolve((to, from, next) => {
  // 进行路由解析后的处理
  next();
})
ログイン後にコピー

ルート排他ガード:

ルート排他ガードは特定のルートに対するガードであり、現在のルートが入った場合のみガードされます。または葉の転送。使用方法は次のとおりです。

サンプル コードは次のとおりです。

const router = new VueRouter({
  routes: [
    {
      path: '/admin',
      component: Admin,
      beforeEnter: (to, from, next) => {
        // 进行权限验证等操作
        if (localStorage.getItem('admin')) {
          next();
        } else {
          next({
            path: '/login',
            query: {redirect: to.fullPath}
          })
        }
      }
    }
  ]
})
ログイン後にコピー

コンポーネント レベル ガード:

コンポーネント レベル ガードは、コンポーネント内のナビゲーション ガードを指し、使用できます。コンポーネントの内部状態を管理します。コンポーネント レベルのガードには主に 4 つのタイプがあります。

  1. beforeRouteEnter(to, from, next)

ルートに入る前に呼び出され、ルートの内部状態にアクセスするときに使用されます。成分。

サンプルコードは次のとおりです。

export default {
  data() {
    return {
      user: null
    }
  },
  beforeRouteEnter(to, from, next) {
    const user = localStorage.getItem('user')
    if (user) {
      // 访问不到组件实例
      next(vm => {
        vm.user = user
      })
    } else {
      next({
        path: '/login',
        query: {redirect: to.fullPath}
      })
    }
  }
}
ログイン後にコピー
  1. beforeRouteLeave(to, from, next)

ルートが出発する前に呼び出され、使用できます。現在のルートまたは変更操作を保存するかどうかを確認します。

サンプル コードは次のとおりです。

export default {
  data() {
    return {
      text: ''
    }
  },
  beforeRouteLeave(to, from, next) {
    if (this.text !== '') {
      const confirmMsg = '您的修改还未保存,确定要离开吗?'
      if (confirm(confirmMsg)) {
        next();
      } else {
        next(false);
      }
    } else {
      next();
    }
  }
}
ログイン後にコピー
  1. beforeRouteUpdate(to, from, next)

現在のルートが更新されるときに呼び出されます。コンポーネントの内部状態を更新します。

サンプル コードは次のとおりです。

export default {
  data() {
    return {
      user: null
    }
  },
  beforeRouteUpdate(to, from, next) {
    const user = localStorage.getItem('user')
    if (user) {
      this.user = user
      next();
    } else {
      next({
        path: '/login',
        query: {redirect: to.fullPath}
      })
    }
  }
}
ログイン後にコピー
  1. beforeRouteLeave(to, from, next)

はルートのレンダリング中に呼び出され、次の目的で使用できます。サーバー側レンダリング 操作を待ちます。

サンプル コードは次のとおりです。

export default {
  beforeRouteRender(to, from, next) {
    // 进行服务器端渲染等操作
    next();
  }
}
ログイン後にコピー

上記のルーティング ガードの紹介を通じて、ログインするかどうかの決定、権限検証の実行など、ルーティング ガードには多くのアプリケーション シナリオがあることがわかります。 、変更操作の保存など。シナリオが異なれば、異なるルーティング ガードの使用が必要になるため、開発中の処理に適切なガードを選択する必要があります。

つまり、Vue ルート ガードは非常に重要な部分であり、適切に使用すると、アプリケーションのセキュリティと安定性を大幅に向上させることができます。したがって、開発者はルート ガードの使用法とアプリケーション シナリオをより深く理解する必要があります。

以上がVue ルーティング ガードの詳細な説明とその適用シナリオの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++のmode関数の詳しい解説 C++のmode関数の詳しい解説 Nov 18, 2023 pm 03:08 PM

C++ のモード関数の詳細な説明 統計において、モードとは、一連のデータ内で最も頻繁に現れる値を指します。 C++ 言語では、モード関数を記述することによって、任意のデータセット内のモードを見つけることができます。モード関数はさまざまな方法で実装できます。一般的に使用される 2 つの方法を以下で詳しく紹介します。 1 つ目の方法は、ハッシュ テーブルを使用して各数値の出現回数をカウントすることです。まず、各数値をキー、出現回数を値とするハッシュ テーブルを定義する必要があります。次に、特定のデータセットに対して次を実行します。

Win11での管理者権限の取得について詳しく解説 Win11での管理者権限の取得について詳しく解説 Mar 08, 2024 pm 03:06 PM

Windows オペレーティング システムは世界で最も人気のあるオペレーティング システムの 1 つであり、その新バージョン Win11 が大きな注目を集めています。 Win11 システムでは、管理者権限の取得は重要な操作であり、管理者権限を取得すると、ユーザーはシステム上でより多くの操作や設定を実行できるようになります。この記事では、Win11システムで管理者権限を取得する方法と、権限を効果的に管理する方法を詳しく紹介します。 Win11 システムでは、管理者権限はローカル管理者とドメイン管理者の 2 種類に分かれています。ローカル管理者はローカル コンピュータに対する完全な管理権限を持っています

Oracle SQLの除算演算の詳細説明 Oracle SQLの除算演算の詳細説明 Mar 10, 2024 am 09:51 AM

OracleSQL の除算演算の詳細な説明 OracleSQL では、除算演算は一般的かつ重要な数学演算であり、2 つの数値を除算した結果を計算するために使用されます。除算はデータベース問合せでよく使用されるため、OracleSQL での除算演算とその使用法を理解することは、データベース開発者にとって重要なスキルの 1 つです。この記事では、OracleSQL の除算演算に関する関連知識を詳細に説明し、読者の参考となる具体的なコード例を示します。 1. OracleSQL での除算演算

C++の剰余関数の詳しい解説 C++の剰余関数の詳しい解説 Nov 18, 2023 pm 02:41 PM

C++ の剰余関数の詳しい説明 C++ では、剰余演算子 (%) を使用して、2 つの数値を除算した余りを計算します。これは、オペランドが任意の整数型 (char、short、int、long など) または浮動小数点数型 (float、double など) になる二項演算子です。剰余演算子は、被除数と同じ符号の結果を返します。たとえば、整数の剰余演算の場合、次のコードを使用して実装できます。

Vue.nextTick関数の使い方と非同期更新での応用について詳しく解説 Vue.nextTick関数の使い方と非同期更新での応用について詳しく解説 Jul 26, 2023 am 08:57 AM

Vue.nextTick 関数の使い方と非同期更新での応用について詳しく説明 Vue の開発では、DOM を変更した直後にデータを更新したり、関連する操作が必要になったりするなど、データを非同期で更新する必要がある状況によく遭遇します。データが更新された直後に実行されます。このような問題を解決するために登場したのが、Vue が提供する .nextTick 関数です。この記事では、Vue.nextTick 関数の使用法を詳しく紹介し、コード例と組み合わせて、非同期更新でのアプリケーションを説明します。 1.Vue.nex

php-fpmのチューニング方法を詳しく解説 php-fpmのチューニング方法を詳しく解説 Jul 08, 2023 pm 04:31 PM

PHP-FPM は、PHP のパフォーマンスと安定性を向上させるために一般的に使用される PHP プロセス マネージャーです。ただし、高負荷環境では、PHP-FPM のデフォルト設定ではニーズを満たせない場合があるため、チューニングが必要です。この記事では、PHP-FPM のチューニング方法を詳しく紹介し、いくつかのコード例を示します。 1. プロセスの数を増やす デフォルトでは、PHP-FPM はリクエストを処理するために少数のプロセスのみを開始します。高負荷環境では、プロセス数を増やすことで PHP-FPM の同時実行性を高めることができます。

PHPモジュロ演算子の役割と使い方を詳しく解説 PHPモジュロ演算子の役割と使い方を詳しく解説 Mar 19, 2024 pm 04:33 PM

PHP のモジュロ演算子 (%) は、2 つの数値を除算した余りを取得するために使用されます。この記事では、モジュロ演算子の役割と使用法について詳しく説明し、読者の理解を深めるために具体的なコード例を示します。 1. モジュロ演算子の役割 数学では、整数を別の整数で割ると、商と余りが得られます。たとえば、10 を 3 で割ると、商は 3 になり、余りは 1 になります。モジュロ演算子は、この剰余を取得するために使用されます。 2. モジュロ演算子の使用法 PHP では、% 記号を使用してモジュロを表します。

C言語学習ルートを詳細に分析 C言語学習ルートを詳細に分析 Feb 18, 2024 am 10:38 AM

ソフトウェア開発の分野で広く使用されているプログラミング言語として、C 言語は多くの初心者プログラマーにとって最初の選択肢です。 C言語を学ぶと、プログラミングの基礎知識を定着させるだけでなく、問題解決能力や思考力も向上します。この記事では、初心者が学習プロセスをより適切に計画できるようにするための C 言語学習ロードマップを詳しく紹介します。 1. 基本的な文法を学ぶ C 言語の学習を始める前に、まず C 言語の基本的な文法規則を理解する必要があります。これには、変数とデータ型、演算子、制御ステートメント (if ステートメント、

See all articles