コンセプト: 「ナビゲーション」はルートが変わることを意味します
航行ガード:グローバル航行ガードとローカル航行ガードを含む 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開発の現状を深く理解する
1. グローバルオブジェクトすべてのモジュールは呼び出すことができます1) global: ブラウザ...
Dockerfile を使用したイメージのカスタマイズイメージのカスタマイズとは、実際には各レイヤー...
この記事では、テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加を行う一般的な ...
履歴コマンドを表示し、指定されたコマンドを実行します owen@owen:~/owen/softwa...
JavaScript の DOM イベント モデルでは、オブジェクトの addEventListen...
次に、ログ管理、ログのアーカイブ、ログのトラブルシューティング、イベントの転送と収集のためのコンピュ...
1. MySQLをダウンロードする公式サイトのダウンロードページをクリックすると次のページに入ります...
MYSQL を使用する場合、トリガーがよく使用されますが、不適切な使用によって問題が発生する場合が...
問題の説明Windows Server 2012 R2 または Windows Server 201...
0 アイコンと画像の違いアイコンは文字であり、画像はバイナリ ストリームです。つまり、画像はアイコン...
1. 1列を変更する 学生の更新、都市c s.city_name = c.name を設定します こ...
01. コマンドの概要basename - ファイル名からディレクトリとサフィックスを削除しますba...
目次序文プロミスチェーンMDN エラー連鎖デフォルト処理略語非同期待機序文この記事を書いた理由は、ユ...
この記事では、参考までにvueキャンバスのタイムライン描画の具体的なコードを紹介します。具体的な内容...
手工芸デザインからグラフィックデザイン、そしてウェブデザインまで、デザインの原則は同じままですが、私...