コンセプト: 「ナビゲーション」はルートが変わることを意味します
航行ガード:グローバル航行ガードとローカル航行ガードを含む 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開発の現状を深く理解する
目次Refsとは何か1. 文字列型参照2. コールバック参照React.createRef() 4....
序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...
コードをコピーコードは次のとおりです。 <div class="content&qu...
目次1. 環境設定1.NTPサーバー2. ビジネスサーバー2. NTPサーバーの設定1. chron...
この記事では、WeChatアプレットの具体的なコードを参考までに紹介します。具体的な内容は次のとおり...
目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...
Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...
ウェブデザイナーを長い間悩ませてきた疑問があります。それは、固定レイアウト、流動的レイアウト、柔軟レ...
複雑なテーブル構造では、一部のセルが水平方向に複数のセルにまたがるため、行間属性 ROWSPAN を...
1. リストリスト ulコンテナーには、一貫した構造とスタイルを持つテキストまたはグラフの形式が読...
will-change は、要素にどのような変更が行われるかをブラウザに伝え、ブラウザが事前に最適化...
マーキー要素を使用すると、単純なフォント(画像など)のスライドやその他の効果を実現できます。コードを...
Taobao のウェブページはインポートを使用していますが、多くのウェブサイトはリンクを使用していま...
序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...
目次mysql 権限制御権限システムテーブル変更後にMySQLの権限を有効にする方法権限の付与と取り...