Vue登錄攔截 登錄后繼續(xù)跳轉(zhuǎn)指定頁面的操作
在開發(fā)中我們經(jīng)常遇到這樣的需求,需要用戶登錄后才可以訪問該頁面,如果用戶沒有登錄點(diǎn)擊該頁面時(shí)則自動(dòng)跳轉(zhuǎn)到登錄頁面,登錄后又跳轉(zhuǎn)到鏈接的頁面而不是首頁,這種問題該如何去做呢?
1、在路由器router下的 index.js 的配置中,給需要攔截登錄的頁面的路由上加一個(gè)meta: {loginRequest: true} ,其中l(wèi)oginRequest 變量自己可以隨意定義
2、在main.js文件里面添加beforeEach鉤子函數(shù)
解釋:
router.beforeEach((to, from, next) => { } 三個(gè)參數(shù):
to:即將要進(jìn)入的目標(biāo) 路由對(duì)象
from:當(dāng)前導(dǎo)航正要離開的路由
next:(function函數(shù)) 調(diào)用next() 進(jìn)行管道中的下一個(gè)鉤子
next() 無參 進(jìn)行 下一個(gè)鉤子函數(shù)
next({ path:’/xxx’ , query:{}}) 攜帶參數(shù)跳到xxx頁面
3、登錄頁面login.vue,登錄完成后,跳到指定頁面或首頁
補(bǔ)充知識(shí):vue實(shí)現(xiàn)登錄后跳轉(zhuǎn)到來源路由url
sessionStorage存儲(chǔ)from.path來源的路由url,如果不是登錄或者注冊(cè)就攔截跳到登錄頁,如果是就放行
router.beforeEach(function(to,from,next){ if(to.path!=’/login’ && to.path!=’/register’){ sessionStorage.setItem(’referrer’,from.path) //儲(chǔ)存來源路由 alert(’請(qǐng)登錄’) next({ path:’/login’ }) }else{ next() } })
登錄后判斷sessionStorage中是否有存儲(chǔ)來源路由,如果有就跳轉(zhuǎn)到這個(gè)路由
//獲取來源頁路由var referrer = sessionStorage.getItem(’referrer’);if(referrer != null){ this.$router.push(referrer)}else { this.$router.push(’/home’)}
以上這篇Vue登錄攔截 登錄后繼續(xù)跳轉(zhuǎn)指定頁面的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python如何批量生成和調(diào)用變量2. 基于 Python 實(shí)踐感知器分類算法3. Python 中如何使用 virtualenv 管理虛擬環(huán)境4. ASP.Net Core對(duì)USB攝像頭進(jìn)行截圖5. python利用opencv實(shí)現(xiàn)顏色檢測(cè)6. ASP.Net Core(C#)創(chuàng)建Web站點(diǎn)的實(shí)現(xiàn)7. 通過CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動(dòng)畫特效8. windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無效問題9. ajax動(dòng)態(tài)加載json數(shù)據(jù)并詳細(xì)解析10. ASP.NET MVC實(shí)現(xiàn)橫向展示購物車
