vue router+vuex實(shí)現(xiàn)首頁(yè)登錄驗(yàn)證判斷邏輯
首頁(yè)登錄邏輯要求在頁(yè)面上判斷是否獲取到登錄token ,沒有獲取到則跳轉(zhuǎn)到登錄頁(yè)。登錄成功后,跳轉(zhuǎn)到前一個(gè)頁(yè)面。
1.vue router
路由判斷首先我們想到的是router.beforeEach 前置導(dǎo)航守衛(wèi) ,這個(gè)方法接受三個(gè)參數(shù) to from next 。
to參數(shù)為即將跳轉(zhuǎn)的路由路徑,from為當(dāng)前導(dǎo)航正要離開的路由,next方法用來resolve這個(gè)鉤子。
下面以工作中寫的一個(gè)判斷為為例子:
router.beforeEach(async (to, from, next) => {
const { name, meta } = to;
const { requireLogin } = meta;
if (name === 'login') { // 如果是登錄頁(yè)則用next方法resolve掉這個(gè)鉤子,如果不是,進(jìn)行到下一個(gè)判斷
return next();
}
const needLogin = requireLogin && !store.getters.user.isLogin; // 從store中讀取是否獲取了已登錄的信息
if (needLogin) {
return next({ // 如果沒有則跳轉(zhuǎn)到登錄頁(yè),將當(dāng)前路由路徑放到參數(shù)中
name: 'login',
params: { back: to },
});
}
return next();
});
2. this.$router 與 this.$route this.$router.push 與 this.$router.replace
在登錄頁(yè)完成登錄請(qǐng)求后進(jìn)行下面的操作
獲取路徑中存放前一個(gè)路徑的參數(shù) ,然后跳轉(zhuǎn)到該頁(yè)面
loginSuccess() {
const { params: { back } } = this.$route;
const route = back || { name: 'home' };
const { name, params, query } = route;
this.$router.replace({ name, params, query });
},
在上面這段代碼中出現(xiàn)了兩個(gè)我們經(jīng)?;煜母拍?
我們知道this.$router是router實(shí)例,可以用來直接訪問路由。我們稱router配置中每一個(gè)對(duì)象為一個(gè)路由記錄,this.$route是暴露出來用來訪問每個(gè)路由記錄的。因此我們獲取參數(shù)時(shí)使用的是this.$route 跳轉(zhuǎn)路由時(shí)使用的是道this.$router。
上端代碼中我們使用了replace而不是push來跳轉(zhuǎn)路由,這兩者的區(qū)別是會(huì)不會(huì)在history中產(chǎn)生記錄。replace不會(huì)新增記錄,而是直接替換掉了這條路由記錄。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue-router結(jié)合vuex實(shí)現(xiàn)用戶權(quán)限控制功能
- 基于vue,vue-router, vuex及addRoutes進(jìn)行權(quán)限控制問題
- 基于Vue、Vuex、Vue-router實(shí)現(xiàn)的購(gòu)物商城(原生切換動(dòng)畫)效果
- vue-router+vuex addRoutes實(shí)現(xiàn)路由動(dòng)態(tài)加載及菜單動(dòng)態(tài)加載
- Vue-router 類似Vuex實(shí)現(xiàn)組件化開發(fā)的示例
- 詳解使用Vue Router導(dǎo)航鉤子與Vuex來實(shí)現(xiàn)后退狀態(tài)保存
- Vuex與Vue router的使用詳細(xì)講解
相關(guān)文章
vue3?element-plus?實(shí)現(xiàn)表格數(shù)據(jù)更改功能詳細(xì)步驟
這篇文章主要介紹了vue3 element-plus實(shí)現(xiàn)表格數(shù)據(jù)更改功能,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Vue項(xiàng)目啟動(dòng)報(bào)錯(cuò)解決方法大全
這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目啟動(dòng)報(bào)錯(cuò)解決方法的相關(guān)資料,文中通過圖文將解決的過程介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
使用el-row及el-col頁(yè)面縮放時(shí)出現(xiàn)空行的問題及解決
這篇文章主要介紹了使用el-row及el-col頁(yè)面縮放時(shí)出現(xiàn)空行的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
vue中使用swiper輪播圖的正確姿勢(shì)(親測(cè)有效)
最近在用Vue制作移動(dòng)端項(xiàng)目,碰到了輪播圖的制作,接下來就讓小編一步一步帶大家動(dòng)作制作吧,下面這篇文章主要給大家介紹了關(guān)于vue中使用swiper輪播圖的正確姿勢(shì),需要的朋友可以參考下2022-06-06
Vue如何實(shí)現(xiàn)將后端返回二進(jìn)制文件在瀏覽器自動(dòng)下載
Vue項(xiàng)目開發(fā)中,遇到界面下載功能時(shí),前端如何實(shí)現(xiàn)將后端返回二進(jìn)制文件在瀏覽器自動(dòng)下載呢,本文就來和大家聊聊具體的解決方法吧2024-11-11
Vue源碼解析之Template轉(zhuǎn)化為AST的實(shí)現(xiàn)方法
這篇文章主要介紹了Vue源碼解析之Template轉(zhuǎn)化為AST的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12
詳解Vue組件之間的數(shù)據(jù)通信實(shí)例
本篇文章主要介紹了詳解Vue組件之間的數(shù)據(jù)通信實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06

