ホームページ > ウェブフロントエンド > Vue.js > Vue ドキュメントのルート ガード関数の概要

Vue ドキュメントのルート ガード関数の概要

WBOY
リリース: 2023-06-20 08:18:22
オリジナル
1136 人が閲覧しました

Vue は、多くの強力な機能を提供する人気のフロントエンド フレームワークであり、その 1 つがルート ガード機能です。ルート ガード機能は Vue ルーティングの重要な機能であり、ルートに移動するとき、またはルートから離れるときに制御ロジックを実行するために使用されます。ルートガード機能により、ルートの読み取りや変更、さまざまな条件に応じたルートナビゲーションを制御できます。この記事では、Vue のルート ガード機能の役割と使用法を理解するのに役立つように、Vue ドキュメントのルート ガード機能を紹介します。

ルート ガード機能は、グローバル フロント ガード、グローバル ポスト フック、およびルート専用ガードの 3 つのカテゴリに分類できます。以下では、これら 3 種類のガードをそれぞれ紹介します。

グローバル プレガード:

グローバル プレガードは、ルート ジャンプの前に実行できます。 Vue ルーター オブジェクトにグローバル プレフィックス ガードを登録して、プロジェクト全体のすべてのルートに有効にすることができます。以下に示すように、beforeEach メソッドを使用して Vue ルーター オブジェクトにグローバル beforeEach ガードを登録します。

router.beforeEach((to, from, next) => {
  // to: 即将进入的目标路由对象
  // from: 当前导航正要离开的路由对象
  // next: 下一步执行钩子函数,如果全部执行完了,则返回空或一个true值
})
ログイン後にコピー

最も簡単な使用法は、next() メソッドを呼び出してアウトバウンド操作を開始することです。ナビゲーションをキャンセルしたい場合 (たとえば、ユーザーにアクセス権限がない場合)、 false または文字列または Error インスタンスを返します。これにより、ナビゲーションが終了し、対応するルートに直接切り替わります。たとえば、次のガードは、ユーザーがログインしていない場合にナビゲーションを終了します。

router.beforeEach((to, from, next) => {
  const isAuthenticated = store.getters.isAuth
  if (!isAuthenticated && to.path !== '/login') {
    next('/login')
  } else {
    next()
  }
})
ログイン後にコピー

グローバル ポストフック:

グローバル ポストフックは、ナビゲーションが確認された後に実行されます。このガードは次の機能を受け入れず、ナビゲーション自体を変更しません:

router.afterEach((to, from) => {
  // to: 要进入的目标路由
  // from: 正在离开的路由
})
ログイン後にコピー

ルート限定ガード:

ルート限定ガードはルート設定で設定できます。つまり、次のことが可能です。異なるフロント ガードとバック ガードを定義して、異なるルートを処理します。 beforeEnter ガードを使用すると、特定のルートに排他的なガード機能を設定できます (グローバル ガードとは異なり、Router オブジェクトにガードを登録する必要はありません)。 beforeEnter ガードは、ルート排他的設定に存在する場合にのみ起動します。

const router = new VueRouter({
  routes: [
    {
      path: '/user/:id',
      component: User,
      beforeEnter: (to, from, next) => {
        // ...
      }
    }
  ]
})
ログイン後にコピー

ルート排他的ガードで実行されるロジックは、グローバル フロント ガード機能のロジックと非常によく似ていますが、フロント ガードではすべてのルートに対して同じロジックを実行できますが、ルート排他的ガードでは、ルートは特定のロジックを定義します。

概要:

ルート ガード機能は Vue ルーティングの重要な部分であり、ルート ナビゲーションを制御する機能を提供します。グローバル フロント ガード、グローバル ポスト フック、およびルート専用ガードは 3 つの異なるガード タイプであり、それぞれに異なる目的と特性があります。 Vue ルーティングを使用する場合、これらのさまざまな種類のガードをより深く理解して使用すると、ルート ナビゲーションをより適切に制御し、より柔軟なフロントエンド アプリケーションを開発するのに役立ちます。

以上がVue ドキュメントのルート ガード関数の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート