コンセプト: 「ナビゲーション」はルートが変わることを意味します
航行ガード:グローバル航行ガードとローカル航行ガードを含む 1. グローバルガードvue-routerには3つのグローバルガードがある
1. グローバル前線警備router.beforeEach を使用してグローバルな before guard を登録できます。 const ルーター = 新しい VueRouter({...}) router.beforeEach((to, from, next) => { // to と from はどちらもルーティングインスタンスです // to: ジャンプ先のルート // from: 離れる現在のルート // next: 関数 })
いつか彼を解放してあげてください。そうしないと、彼は同じことを繰り返し続けるでしょう。 2. グローバル解像度ガード2.5.0 新機能 // グローバル解決ガード router.beforeResolve((to,from.next) => { }) 2.5.0 以降では、 解決ガードは、ナビゲーションが確認される前、およびすべてのコンポーネント ガードと非同期ルート コンポーネントが解決された後に呼び出されます。 3. グローバルポストフックグローバル after-hook を登録することもできますが、ガードとは異なり、これらのフックは next 関数を受け取らず、ナビゲーション自体を変更しません。 // グローバルポストフック router.afterEach((to,form) => { })
3. ルーター専用ガードルーティングをグローバルに設定したくない場合は、特定のルートに対してガードを個別に設定できます。 たとえば、 { パス: '/mainpage', 名前: 'About'、 コンポーネント: About、// ルーティング排他ガード beforeEnter:(to,from,next) => { if(from.name === '/mainpage/about'){ alert("これはaboutからのものです") }それ以外{ 警告("これは about からのものではありません") }next(); // 次のステップを実行するには呼び出す必要があります。そうでなければジャンプしません。 } }, 4. コンポーネント内のガード最後に、ルート コンポーネント内で直接次のルート ナビゲーション ガードを定義できます。
製品の例を見てみましょう。 // グローバル解決ガード router.beforeResolve((to,from.next) => { }) // グローバルポストフック router.afterEach((to,form) => { }) { パス: '/mainpage', 名前: 'About'、 コンポーネント: について、 // ルーティング排他ガード beforeEnter:(to,from,next) => { if (from.name === '/mainpage/about') { alert("これは約からのものです") }それ以外{ 警告("これは about からのものではありません") } next(); // 次の操作を実行するには呼び出す必要があります。そうでなければジャンプしません。 } }, エクスポートデフォルト{ // コンポーネントの内部ガード beforeRouteUpdate がトリガーされる条件は、現在のルートが変更されるが、コンポーネントが再利用されることです。 たとえば、product/orders から product/cart へのルートは Product.vue コンポーネントを再利用し、beforeRouteUpdate がトリガーされます。このインスタンスを取得できます。 完全なナビゲーション解析プロセス // このフックが呼び出されたときにコンポーネントインスタンスが作成されていないため、これを取得することはできません beforeRouteEnter (to、from、next) { console.log(to.name); // インスタンスを取得したい場合 // next(vm=>{ // // ここでの vm はコンポーネントのインスタンスです (this) // }); 次(); }, beforeRouteUpdate(to,from,next){ console.log(to.name, from.name); 次(); }, // このメソッドは、ルートを離れるときに呼び出されます // たとえば、ユーザーが何かを編集したが、まだ保存していない場合です。この時点で、ユーザーはこのページを離れようとしているので、まだ保存していないことを思い出させ、離れるかどうかを尋ねる必要があります beforeRouteLeave (to, from, next) { const leave = confirm("本当に退出しますか?"); if(leave) next() // 離れる else next(false) // 離れない }, }
5. 完全なナビゲーション分析プロセス
これで、Vue ルーティング ナビゲーション ガードについて簡単に理解する方法に関するこの記事は終了です。Vue ルーティング ナビゲーション ガードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: モバイル開発におけるHTML5開発の現状を深く理解する
この記事では、優れた Web ページのカラー マッチングの事例を 20 件集めて紹介します。これらの...
導入コンパイル、インストール、問題の解決後、Nginx は正常に動作していますが、現時点では Ngi...
最近、Djangoを学習しているときにデータベースを使用する必要があったため、MySQLで使用するた...
この記事は、CentOS 7の詳細なインストールチュートリアルを参考のために記録します。具体的な内容...
2 つ以上のブロックレベル ボックスの垂直に隣接するエッジが重なり合っています。結果として得られる境...
メモリストレージエンジンに関する知識ポイントメモリ ストレージ エンジンは日常業務ではほとんど使用さ...
序文データベース操作では、同時データ読み取りの正確性を効果的に保証するために、トランザクション分離レ...
目次1. プロトタイプ2. プロトタイプチェーン2.1 コンストラクタ2.2 電話をかける/申し込む...
この記事では、JS掃海プロジェクトの概要を参考までに紹介します。具体的な内容は次のとおりです。プロジ...
デザイナーは独自のフォント ライブラリを持っているため、プロジェクトの設計時にすぐに使用できます。今...
HTML Web ページ リスト タグの学習チュートリアル。 HTML ページでは、リストはアウトラ...
皆さんの時間は貴重だと承知しているので、プロセス コマンドを直接書き留めておきます。設定できます。原...
1. ノーフープハングアップ信号を無視してプログラムを実行する追加メモnohup コマンドは、ハン...
目次1. jsonp クロスドメイン2. document.domain + iframe クロスド...
1. MySQL rpm パッケージのインストール # インストールソースをダウンロードします [r...