vue路由攔截的三種方法小結(jié)
1.全局前置守衛(wèi)
Vue Router 提供了全局前置守衛(wèi),它可以在路由切換之前對(duì)請(qǐng)求進(jìn)行攔截。全局前置守衛(wèi)可以用來(lái)檢查用戶是否已經(jīng)登錄,或者檢查用戶是否具有訪問(wèn)該頁(yè)面的權(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)可以用來(lá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è)代碼片段會(huì)在路由 /example/:id 的切換之前執(zhí)行,檢查傳入的參數(shù) id 是否滿足條件,如果不滿足則跳轉(zhuǎn)到 /error 頁(yè)面,否則就繼續(xù)進(jìn)行路由切換。路由獨(dú)享的守衛(wèi)是一種非常靈活的路由攔截方式,可以讓我們更靈活地控制路由的切換
3.全局后置鉤子
與全局前置守衛(wèi)類似,Vue Router 還提供了全局后置鉤子,它可以在路由切換之后對(duì)響應(yīng)進(jìn)行攔截。全局后置鉤子可以用來(lái)處理路由切換之后的一些邏輯問(wèn)題,如頁(yè)面統(tǒng)計(jì)、錯(cuò)誤處理等。在router/index.js 中添加以下代碼
router.afterEach((to,from)=>{
const currentPath = to.path;
const params = to.params;
console.log(`切換到${currentPath}頁(yè)面,路由參數(shù)為${JSON.stringify(params)}`)
})這個(gè)代碼片段會(huì)在每次路由切換之后執(zhí)行,輸出當(dāng)前路由頁(yè)面的路徑和參數(shù)。通過(guò)全局后置鉤子,我們可以更好地了解路由狀態(tài)和相應(yīng)的結(jié)果,以便對(duì)項(xiàng)目進(jìn)行下一步的開(kāi)發(fā)和測(cè)試。
以上就是vue路由攔截的三種方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于vue路由攔截的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mpvue微信小程序開(kāi)發(fā)之實(shí)現(xiàn)一個(gè)彈幕評(píng)論
這篇文章主要介紹了mpvue小程序開(kāi)發(fā)之 實(shí)現(xiàn)一個(gè)彈幕評(píng)論功能,本文通過(guò)實(shí)例講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
使用vNode實(shí)現(xiàn)給列表字段打標(biāo)簽
這篇文章主要為大家介紹了使用vNode實(shí)現(xiàn)給列表字段打標(biāo)簽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
vue3中使用VueParticles實(shí)現(xiàn)粒子動(dòng)態(tài)背景效果
為了提高頁(yè)面展示效果,特別類似于登錄界面內(nèi)容比較單一的,粒子效果作為背景經(jīng)常使用到,vue工程中利用vue-particles可以很簡(jiǎn)單的實(shí)現(xiàn)頁(yè)面的粒子背景效果,本文給大家分享vue粒子動(dòng)態(tài)背景效果實(shí)現(xiàn)代碼,需要的朋友參考下吧2022-05-05
Vue通過(guò)provide inject實(shí)現(xiàn)組件通信
這篇文章主要介紹了Vue通過(guò)provide inject實(shí)現(xiàn)組件通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
vue DatePicker日期選擇器時(shí)差8小時(shí)問(wèn)題
這篇文章主要介紹了vue DatePicker日期選擇器時(shí)差8小時(shí)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
vue3+ts實(shí)現(xiàn)一個(gè)表單組件的詳細(xì)代碼
這篇文章主要介紹了vue3+ts實(shí)現(xiàn)一個(gè)表單組件的詳細(xì)代碼,確保通過(guò)axios調(diào)用后端接口來(lái)獲取省市區(qū)和街道數(shù)據(jù),并在選擇省市區(qū)時(shí)加載相應(yīng)的街道數(shù)據(jù),需要的朋友可以參考下2024-07-07

