コンセプト: 「ナビゲーション」はルートが変わることを意味します
航行ガード:グローバル航行ガードとローカル航行ガードを含む 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開発の現状を深く理解する
この記事では、スライド選択効果を実現するピッカーをシミュレートするjQueryの具体的なコードを参考...
この記事では、モバイル端末を一度に1画面ずつ上下にスライドさせるためのJSの具体的なコードを参考まで...
目次序文1. 全員にインストールパッケージを用意する2. Navicatをインストールし、Navic...
序文正直に言うと、最近とても混乱していると感じています。テクノロジーと人生について。また、将来の発展...
docker-compose.yml ファイルで './' 相対パスを許可する バー...
3 つの属性 flex-grow、flex-shrink、flex-basis の機能は次のとおりで...
この記事では、MySQLのダウンロードとインストールの詳細なチュートリアルを記載しています。具体的な...
この記事では、MySQL ユーザー権限管理の例について説明します。ご参考までに、詳細は以下の通りです...
序文:プロジェクトの開発中に、1 行にナビゲーション バーが多すぎる場合に水平スクロール バーを実装...
目次文字列オブジェクトのメソッド方法 1: indexOf() (推奨)方法 2: search()...
XML/HTML コードコンテンツをクリップボードにコピー<入力 id = "ユーザ...
1 QPS 計算 (1 秒あたりのクエリ数) MyISAMエンジンベースのDBの場合 MySQL&g...
ページをナビゲートする2つの方法宣言型ナビゲーション: リンクをクリックしてナビゲーションを実現する...
HTML メタビューポート属性の説明ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウ...
成果を達成する実装コード <h1>123WORDPRESS.COM</h1>...