1. 程式人生 > 其它 >Vue路由的三種守衛

Vue路由的三種守衛

技術標籤:vue.js

全域性守衛:

需要用過路由物件router進行使用

前置守衛:

在路由發生跳轉時最先觸發的一定時全域性的前置守衛,
在這裡插入圖片描述

後置守衛:
        在路由跳轉進入後執行,執行時機在beforeEnter之後且在Vue的beforeCreate之前

在這裡插入圖片描述

獨享守衛(比較少見)

與其他兩種路由鉤子不同的是它只有一個,而不是一對,需要在路由的routes陣列的對應路由物件中進行配置,執行時機在全域性前置守衛之後
在這裡插入圖片描述

元件內的路由守衛

從名字就可以得知它是存在元件當中的,需要在對應的元件中配置。
在進入元件時觸發beforeRouteEnter(),執行時機在beforeEnter之後,afterEach之後

在這裡插入圖片描述

在元件路由地址添加了引數但沒有跳轉時會觸發
在這裡插入圖片描述

beforeRouteUpdate(),同時在元件複用也會觸發
在離開元件時觸發beforeRouteLeave(),執行時機在離開元件時立即觸發
在這裡插入圖片描述

注意:路由中有next的一定要執行next()才會跳轉到頁面,如果沒有執行next()的話會導致頁面無法跳轉到相應頁面,會出現白屏的情況

路由與Vue鉤子順序

路由發生跳轉
beforeEach—>beforeEnter—>beforeRouteEnter—>afterEach—>beforeCreate—>created—>beforeMount—>mounted–vue的資料發生改變–>beforeUpdate—>Updated–離開當前元件–>beforeRouterLeave—>

跳轉到第二個元件的順序,注意,此時第一個元件的beforedestroy還沒有銷燬
beforeEach—>beforeEnter—>beforeRouteEnter—>afterEach—>beforeCreate—>created—>beforeMount—>第一個元件的beforeDestory—>第一個元件的destoryed—>mounted–vue的資料發生改變–>beforeUpdate—>Updated–離開當前元件–>beforeRouterLeave—>…

不足之處請多多指教