vue router+vuex實(shí)現(xiàn)首頁登錄驗(yàn)證判斷邏輯
首頁登錄邏輯要求在頁面上判斷是否獲取到登錄token ,沒有獲取到則跳轉(zhuǎn)到登錄頁。登錄成功后,跳轉(zhuǎn)到前一個(gè)頁面。
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') { // 如果是登錄頁則用next方法resolve掉這個(gè)鉤子,如果不是,進(jìn)行到下一個(gè)判斷 return next(); } const needLogin = requireLogin && !store.getters.user.isLogin; // 從store中讀取是否獲取了已登錄的信息 if (needLogin) { return next({ // 如果沒有則跳轉(zhuǎn)到登錄頁,將當(dāng)前路由路徑放到參數(shù)中 name: 'login', params: { back: to }, }); } return next(); });
2. this.$router 與 this.$route this.$router.push 與 this.$router.replace
在登錄頁完成登錄請(qǐng)求后進(jìn)行下面的操作
獲取路徑中存放前一個(gè)路徑的參數(shù) ,然后跳轉(zhuǎn)到該頁面
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ì)新增記錄,而是直接替換掉了這條路由記錄。
以上就是本文的全部內(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)的購物商城(原生切換動(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)文章
解決vue語法會(huì)有延遲加載顯現(xiàn){{xxx}}的問題
今天小編就為大家分享一篇解決vue語法會(huì)有延遲加載顯現(xiàn){{xxx}}的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11對(duì)Vue.js之事件的綁定(v-on: 或者 @ )詳解
今天小編就為大家分享一篇對(duì)Vue.js之事件的綁定(v-on: 或者 @ )詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09vue實(shí)現(xiàn)html轉(zhuǎn)化pdf并復(fù)制文字
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)html轉(zhuǎn)化pdf的兩種方式,分別為能復(fù)制文字和不能復(fù)制文字的方法,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-10-10vue學(xué)習(xí)筆記之v-if和v-show的區(qū)別
本篇文章主要介紹了vue學(xué)習(xí)筆記之v-if和v-show的區(qū)別,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09vue+echarts繪制省份地圖并添加自定義標(biāo)注方式
這篇文章主要介紹了vue+echarts繪制省份地圖并添加自定義標(biāo)注方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04使用VUE和webrtc-streamer實(shí)現(xiàn)實(shí)時(shí)視頻播放(監(jiān)控設(shè)備-rtsp)
WebRTC-streamer是一項(xiàng)使用簡單機(jī)制通過WebRTC流式傳輸視頻捕獲設(shè)備和RTSP源的實(shí)驗(yàn),下面這篇文章主要給大家介紹了關(guān)于如何使用VUE和webrtc-streamer實(shí)現(xiàn)實(shí)時(shí)視頻播放(監(jiān)控設(shè)備-rtsp)的相關(guān)資料,需要的朋友可以參考下2022-11-11使用vue-antDesign menu頁面方式(添加面包屑跳轉(zhuǎn))
這篇文章主要介紹了使用vue-antDesign menu頁面方式(添加面包屑跳轉(zhuǎn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01vue實(shí)現(xiàn)大文件分片上傳與斷點(diǎn)續(xù)傳到七牛云
這篇文章介紹了vue實(shí)現(xiàn)大文件分片上傳與斷點(diǎn)續(xù)傳到七牛云的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06