vue實(shí)現(xiàn)登錄后頁面跳轉(zhuǎn)到之前頁面
在開發(fā)中我們經(jīng)常遇到這樣的需求,需要用戶直接點(diǎn)擊一個(gè)鏈接進(jìn)入到一個(gè)頁面,用戶點(diǎn)擊后鏈接后會觸發(fā)401攔截返回登錄界面,登錄后又跳轉(zhuǎn)到鏈接的頁面而不是首頁,這種問題該如何去做呢?
先說一下我們需要用到的幾個(gè)API:
1.router.currentRoute:當(dāng)前的路由信息對象,我們可以通過router.currentRoute.fullPath獲得解析后的 URL,包含查詢參數(shù)和 hash 的完整路徑,如果要訪問的頁面的路由有命名(name)的話,可以通過router.currentRoute.name獲得當(dāng)前路由的名稱。
2.router.replace:作用和router.push相同,不過它不會向history添加新紀(jì)錄,而是替換當(dāng)前的history記錄。
由于大家的代碼寫的都不一樣,我就不放我具體的實(shí)現(xiàn)代碼,簡單介紹一下思路:
1.用戶點(diǎn)開鏈接后,跳轉(zhuǎn)到的目標(biāo)的路由頁面,然后觸發(fā)401攔截器,返回登錄頁面:
//401攔截 if(status == "401"){ router.push("/login") }
2.我們可以在401攔截的時(shí)候?qū)⒛繕?biāo)鏈接保存在url中:
if (status == 401) { //判斷當(dāng)前的路由是否是目標(biāo)路由 if(router.currentRoute.name == "target"){ //跳轉(zhuǎn)回login路由,并把目標(biāo)路由的url路徑保存在login的query中 router.replace({ name:"login", query: {redirect: router.currentRoute.fullPath} }) }else{ /* 普通401攔截直接返回到登錄頁面 */ router.push('/login'); } }
3.點(diǎn)擊登錄后使用url上保存的query直接跳轉(zhuǎn)回目標(biāo)頁面
router.push({path:decodeURIComponent(url)});
以上就是我們分享的功能實(shí)現(xiàn)代碼,感謝你對腳本之家的支持。
相關(guān)文章
Vue數(shù)據(jù)更新頁面卻沒有更新的幾種情況以及解決方法
我們在開發(fā)過程中會碰到數(shù)據(jù)更新,但是頁面卻沒有更新的情況,下面這篇文章主要給大家介紹了關(guān)于Vue數(shù)據(jù)更新頁面卻沒有更新的幾種情況以及解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Element UI 上傳組件實(shí)現(xiàn)文件上傳并附帶額外參數(shù)功能
在使用 ElementUI 的上傳組件 el-upload 實(shí)現(xiàn)文件上傳功能時(shí),如果單文件上傳是比較簡單的,但是在實(shí)際需求中,往往會在上傳文件時(shí)伴隨著一些其他參數(shù),怎么操作呢,下面通過示例代碼講解感興趣的朋友一起看看吧2023-08-08vue+Element-ui前端實(shí)現(xiàn)分頁效果
這篇文章主要為大家詳細(xì)介紹了vue+Element-ui前端實(shí)現(xiàn)分頁效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11Vue函數(shù)式組件的應(yīng)用實(shí)例詳解
這篇文章主要介紹了Vue函數(shù)式組件的應(yīng)用實(shí)例詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08vue實(shí)現(xiàn)在進(jìn)行增刪改操作后刷新頁面
這篇文章主要介紹了vue實(shí)現(xiàn)在進(jìn)行增刪改操作后刷新頁面,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08