Vue2.x と Vue3.x のルーティングフックの違いの詳細な説明

Vue2.x と Vue3.x のルーティングフックの違いの詳細な説明

vue2.x

プレコンセプト:

ルーティングフックのカテゴリ

合計3つのカテゴリーと7つのフックがあります。

ルーティングとコンポーネントの概念(フック機能の理解を容易にするため)

ルーティングとコンポーネントは 2 つの概念であり、大まかに次のように考えることができます。

  • ルートはブラウザのURLです
  • コンポーネントは、Web ページに表示されるさまざまな種類のコンテンツです。

グローバルルーティングフック

router.beforeEach(to, from, next){ } 事前ナビゲーションガード

ルーティング前

router.afterEach(to, from, next){ } 投稿ナビゲーションガード

ルートが入った後

router.beforeResolve(to, from, next){ } 解決ガード

コンポーネントを解析するときに、すべての構成が読み込まれ、以前のレベルがすべて通過しています。コンポーネントを解析する前に実行します。

ルーティング構成ガードフック

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-iNt9TxY9-1631622860323) (C:\Users\hwm\AppData\Roaming\Typora\typora-user-images\image-20210914193901604.png)]

beforeEnter() はルーティング構成情報を読み取る前に呼び出されます

beforeCreate() の前に実行される

const ルーター = 新しい VueRouter({
  ルート: [
    {
      パス: '/foo',
      コンポーネント: Foo、
      beforeEnter: (to, from, next) => { }
    }
  ]
})

コンポーネントのガードフック

beforeRouteEnter(to, from, next){ } コンポーネントに入る前

デフォルトでは、 thisコンポーネントインスタンスを取得することはできません。

ただし、次の方法でアクセスできます。

beforeRouteEnter(to, from, next){ 

  // next() のコールバック関数は、ルートに入るときにインスタンス化され実行されます next(vm => {
    // vmは現在のコンポーネントと同等です
  })
}

beforeRouteUpdate(to, from, next){ } コンポーネントを変更する前に

現在のコンポーネントはルーティングアドレスの変更をまだ使用しており、上記の2つの条件が満たされた場合にのみ実行されます。

beforeRouteLeave(to, from, next){ } コンポーネントを離れる前に

ルーティングフックの実行順序

例: コンポーネント A からコンポーネント B へジャンプする

beforeRouteLeave()最初にコンポーネントAを離れる

beforeEach()グローバル - フロントナビゲーションガード

ルーティング構成情報を読み取る前のbeforeEnter() (Bルーティング情報の読み取り)

コンポーネントに入る前にbeforeRouteEnter()

beforeResolve()解決ガード

afterEach()グローバル - 投稿ナビゲーションガード

ルート B に更新がある場合、次の 3 つのフックが毎回実行されます。

beforeEach()グローバル - 事前ナビゲーションガード

beforeResolve()グローバル - 解決ガード

コンポーネント内のbeforeRouteUpdate() - コンポーネントを変更する前

vue3.x

Vue3.x は vue2.x とわずかに異なるだけなので、ここでは違いについてのみ説明します。

比較表

画像の説明を追加してください

相違点と補足:

  • Vue2.x には 3 つのコンポーネントがあります。コンポーネント A がコンポーネント B にジャンプする場合、コンポーネント B にはサブコンポーネントがあります。

コンポーネントBのサブコンポーネントはルーティングフックをトリガーしません。

  • Vue3.x には 3 つのコンポーネントがあります。コンポーネント A がコンポーネント B にジャンプする場合、コンポーネント B にはサブコンポーネントがあります。

コンポーネントBのサブコンポーネントはルーティングフックをトリガーします: onBeforeRouteUpdateとonBeforeRouteLeave
コンポーネントBのサブコンポーネントはルーティングフックをトリガーしません。

  • Vue3.x には 3 つのコンポーネントがあります。コンポーネント A がコンポーネント B にジャンプする場合、コンポーネント B にはサブコンポーネントがあります。

コンポーネントBのサブコンポーネントはルーティングフックをトリガーします: onBeforeRouteUpdateとonBeforeRouteLeave

以上が、Vue2.x と Vue3.x のルーティングフックの違いについての詳しい説明です。Vue2.x と Vue3.x のルーティングフックの違いについての詳細は、123WORDPRESS.COM の他の関連記事もご覧ください。

以下もご興味があるかもしれません:
  • vue3 キャッシュページキープアライブと統合ルーティング処理の詳細な説明
  • Vue3.0とBootstrapを組み合わせてマルチページアプリケーションを作成する
  • Vue3.0はドロップダウンメニューのカプセル化を実装します
  • Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します
  • Vue3ルーティングVueRouter4を使用する簡単な例
  • Vue2/vue3 ルーティング権限管理方法の例
  • Vue3 ページ、メニュー、ルートの使用

<<:  Linux システム (Centos6.5 以上) のインストール JDK チュートリアル分析

>>:  LinuxシステムにTomcatをインストールし、サービスの起動とシャットダウンを構成する

推薦する

HTML_PowerNode 入門 Java アカデミー

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 HTML ...

CSS で 2 列レイアウトを実現する N 通りの方法

1. 2 列レイアウトとは何ですか? 2 列レイアウトには、左側が固定幅で右側が適応幅のレイアウトと...

MySQLコマンドラインでSQLファイルを実行するいくつかの方法

目次最初の方法: MySQLデータベースが接続されていない場合2 番目の方法: データベースがすでに...

jQuery はラブエフェクトをクリックする

この記事では、jQueryのクリック時のラブエフェクトの具体的なコードを参考までに共有します。具体的...

Linux仮想マシンの静的IPアドレスを構成するための手順を完了します

序文多くの場合、仮想マシンを使用します。たとえば、一部のテストは検出されません。何かを壊すことを心配...

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

MYSQL での Truncate の使用法の詳細な説明

この記事のガイド: テーブル内のデータを削除するには、削除と切り捨ての 2 つの方法があります。TR...

Centos7.X Linux システムに tomcat8 をインストールするためのグラフィック チュートリアル

1. Tomcatのインストールパスを作成する mkdir /usr/local/tomcat 2....

Linux のファイル圧縮とパッケージ化の概要

1. 圧縮と包装の概要一般的な圧縮ファイルウィンドウズ .rar .zip .7z Linux .z...

初心者向けの一般的な Linux システムコマンドの完全なリスト

Linux コマンドの学習は、ほとんどの初心者にとって最大の障害です。今日は、Linux システムで...

MySQL コマンドを使用してインデックスを作成、削除、およびクエリする方法の紹介

MySQL データベース テーブルでは、インデックスを作成、表示、再構築、削除できるため、クエリ速度...

実行中の時計を実装するための純粋な CSS3 コード

操作効果コードの実装html <div id="ウォッチ"> <...

Linux で Jenkins プロジェクトを構築するプロセス (CentOS 7 を例に)

https://gitee.com/tengge1/ShadowEditor のデプロイメントを例...

WIN10 に複数のデータベースがインストールされている場合にコンピュータの速度低下を防ぐ方法

必要なときにサービスを有効にし、必要がないときは無効にします。データベース サービスを管理する方法:...

CSS3 疑似クラスセレクターの簡単なレビュー

序文CSS がフロントエンド開発の基本的なスキルであるならば、「セレクター」は基礎中の基礎です。これ...