vue路由攔截的三種方法小結(jié)
1.全局前置守衛(wèi)
Vue Router 提供了全局前置守衛(wèi),它可以在路由切換之前對請求進(jìn)行攔截。全局前置守衛(wèi)可以用來檢查用戶是否已經(jīng)登錄,或者檢查用戶是否具有訪問該頁面的權(quán)限。在router/index.js 中添加以下代碼
export function createRouterGuards(){
try{
router.beforeEach((to,from,next)=>{
if(to.meta.noLogin){
next()
}else{
if(getSessionStorage('token')){
if(getSessionStorage('menuCodeList').includes(to.meta.menuCode)){
next()
}
}
}
})
}
}2.路由獨(dú)享守衛(wèi)
在Vue Router 中,可以為每個(gè)路由單獨(dú)設(shè)置守衛(wèi),這種守衛(wèi)成為路由獨(dú)享的守衛(wèi)。路由獨(dú)享的守衛(wèi)可以用來檢查路由參數(shù)、調(diào)用異步接口、處理數(shù)據(jù)等。在router/index.js 中添加以下代碼
const router = new VueRouter({
routes:[{
path:'/example/:id',
component:Example,
beforeEnter:(to,from,next)=>{
const id = to.params.id
if(id > 0 && id < 100){
next()
}else{
next('/error')
}
}
}]
})這個(gè)代碼片段會在路由 /example/:id 的切換之前執(zhí)行,檢查傳入的參數(shù) id 是否滿足條件,如果不滿足則跳轉(zhuǎn)到 /error 頁面,否則就繼續(xù)進(jìn)行路由切換。路由獨(dú)享的守衛(wèi)是一種非常靈活的路由攔截方式,可以讓我們更靈活地控制路由的切換
3.全局后置鉤子
與全局前置守衛(wèi)類似,Vue Router 還提供了全局后置鉤子,它可以在路由切換之后對響應(yīng)進(jìn)行攔截。全局后置鉤子可以用來處理路由切換之后的一些邏輯問題,如頁面統(tǒng)計(jì)、錯(cuò)誤處理等。在router/index.js 中添加以下代碼
router.afterEach((to,from)=>{
const currentPath = to.path;
const params = to.params;
console.log(`切換到${currentPath}頁面,路由參數(shù)為${JSON.stringify(params)}`)
})這個(gè)代碼片段會在每次路由切換之后執(zhí)行,輸出當(dāng)前路由頁面的路徑和參數(shù)。通過全局后置鉤子,我們可以更好地了解路由狀態(tài)和相應(yīng)的結(jié)果,以便對項(xiàng)目進(jìn)行下一步的開發(fā)和測試。
以上就是vue路由攔截的三種方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于vue路由攔截的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue3.0 響應(yīng)式系統(tǒng)源碼逐行分析講解
這篇文章主要介紹了Vue3.0 響應(yīng)式系統(tǒng)源碼逐行分析講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
vue項(xiàng)目實(shí)現(xiàn)github在線預(yù)覽功能
這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)github在線預(yù)覽功能,本文通過提問兩個(gè)問題帶領(lǐng)大家一起學(xué)習(xí)整個(gè)過程,需要的朋友可以參考下2018-06-06
Vue+UpLoad實(shí)現(xiàn)上傳預(yù)覽和刪除圖片的實(shí)踐
本文主要介紹了Vue+UpLoad實(shí)現(xiàn)上傳預(yù)覽和刪除圖片的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
vue構(gòu)建動(dòng)態(tài)表單的方法示例
這篇文章主要介紹了vue構(gòu)建動(dòng)態(tài)表單的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
vue3?setup語法糖各種語法新特性的使用方法(vue3+vite+pinia)
這篇文章主要介紹了vue3?setup語法糖各種語法新特性的使用(vue3+vite+pinia),本文主要是記錄vue3的setup語法糖的各種新語法的使用方法,需要的朋友可以參考下2022-09-09
vue項(xiàng)目引入svg圖標(biāo)的完整步驟
在實(shí)際的項(xiàng)目開發(fā)中,使用svg圖標(biāo)占用內(nèi)存比圖片更小,映入圖片內(nèi)存比較大,同時(shí)也適用于不同屏幕的尺寸,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目引入svg圖標(biāo)的完整步驟,需要的朋友可以參考下2022-10-10

