溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue實現(xiàn)登錄后頁面跳轉(zhuǎn)到之前頁面

發(fā)布時間:2020-09-11 13:21:32 來源:腳本之家 閱讀:175 作者:laozhang 欄目:web開發(fā)

在開發(fā)中我們經(jīng)常遇到這樣的需求,需要用戶直接點擊一個鏈接進入到一個頁面,用戶點擊后鏈接后會觸發(fā)401攔截返回登錄界面,登錄后又跳轉(zhuǎn)到鏈接的頁面而不是首頁,這種問題該如何去做呢?

先說一下我們需要用到的幾個API:

1.router.currentRoute:當前的路由信息對象,我們可以通過router.currentRoute.fullPath獲得解析后的 URL,包含查詢參數(shù)和 hash 的完整路徑,如果要訪問的頁面的路由有命名(name)的話,可以通過router.currentRoute.name獲得當前路由的名稱。

2.router.replace:作用和router.push相同,不過它不會向history添加新紀錄,而是替換當前的history記錄。

由于大家的代碼寫的都不一樣,我就不放我具體的實現(xiàn)代碼,簡單介紹一下思路:

1.用戶點開鏈接后,跳轉(zhuǎn)到的目標的路由頁面,然后觸發(fā)401攔截器,返回登錄頁面:

//401攔截
if(status == "401"){
  router.push("/login")   
}

2.我們可以在401攔截的時候?qū)⒛繕随溄颖4嬖趗rl中:

if (status == 401) {
   //判斷當前的路由是否是目標路由
   if(router.currentRoute.name == "target"){
    //跳轉(zhuǎn)回login路由,并把目標路由的url路徑保存在login的query中
    router.replace({
     name:"login",
     query: {redirect: router.currentRoute.fullPath}
    })
   }else{
    /* 普通401攔截直接返回到登錄頁面 */
    router.push('/login');
   }
  }

3.點擊登錄后使用url上保存的query直接跳轉(zhuǎn)回目標頁面

router.push({path:decodeURIComponent(url)});

以上就是我們分享的功能實現(xiàn)代碼,感謝你對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI