vue router導航守衛詳解

2022-10-10 07:45:11 字數 981 閱讀 1851

1、導航守衛是什麼?

官方是這麼說的:

正如其名,vue-router提供的導航守衛主要用來通過跳轉或取消的方式守衛導航。
好吧,看不懂,那就好好來理解下吧。

其實,導航守衛就是路由跳轉過程中的一些鉤子函式,再說的直白點路由跳轉是乙個大的過程,這個大的過程分為跳轉前、中、後等細小的過程,在每乙個過程中都有一函式,這個函式能讓你操作一些其他的事兒,這就是導航守衛。

2、導航守衛解析

以下是鉤子函式執行後輸出的順序截圖,後面給大家一 一講解

導航守衛分為:全域性的、單個路由獨享的、元件內的三種。分別來看一下:

第一種:【全域性的】

全域性的,是指路由例項上直接操作的鉤子函式,他的特點是所有路由配置的元件都會觸發(直白點就是觸發路由就會觸發這些鉤子函式),如下的寫法。鉤子函式執行順序包括beforeeach、beforresolve、aftereach三個。

const router = new

vuerouter()

router.beforeeach((to, from, next) =>)

(1)【beforeeach】

在路由跳轉前觸發,引數包括to、from、next這三個,這個鉤子作用主要是用於登入驗證,也就是路由還沒跳轉提前告知,以免跳轉了再通             知就為時已晚。

(2)【beforeresolve】

這個鉤子和beforeeach類似,也是路由跳轉前觸發,引數也是to、from、next三個,和beforeeach區別為:在 beforeeach 和 元件內                       beforerouteenter 之後,aftereach之前呼叫。

vue router 導航守衛

考慮一下這個需求 當頁面發生跳轉時,自動更改頁面的標題。比如跳轉到home頁面,標題改為首頁,跳轉到about頁面,標題改為關於。首先,可以通過生命週期函式實現這個需求,但使用生命週期函式的話,需要在每乙個元件中都新增實現 如果元件過多的話,這將不是乙個好的選擇。這時,就可以考慮使用導航守衛的功能。...

vue router 導航守衛

記住引數或查詢的改變並不會觸發進入 離開的導航守衛。你可以通過觀察 route物件來應對這些變化,或使用beforerouteupdate的元件內守衛。const router new vuerouter router.beforeeach to,from,next next next false ...

VueRouter 導航守衛 路由守衛

就是導航過程中各個階段的鉤子函式。分為 全域性導航守衛 路由導航守衛 元件導航守衛。在整個網頁中,只要發生了路由變化,就會觸發。全域性導航守衛主要包含兩個函式 beforeeach aftereach。在路由發生了改變,但是還沒有成功跳轉的時候會呼叫。router.beforeeach functi...