在webapp的開發(fā)過程中,我們經(jīng)常要考慮到用戶體驗(yàn),我們經(jīng)常設(shè)置不需要調(diào)用個(gè)人數(shù)據(jù)的頁面供游客訪問,今天就由錯(cuò)新技術(shù)頻道小編給大家詳細(xì)介紹vue路由跳轉(zhuǎn)時(shí)判斷用戶是否登錄功能的實(shí)現(xiàn),大家要仔細(xì)閱讀哦。
一丶首先在用戶登錄前后分別給出一個(gè)狀態(tài)來標(biāo)識此用戶是否登錄(建議用vuex);
簡單用vuex表示一下,不會(huì)可以自己去官網(wǎng)多看看;
import Vue from ‘vue‘import Vuex from ‘vuex‘Vue.use(Vuex);var state = { isLogin:0, //初始時(shí)候給一個(gè) isLogin=0 表示用戶未登錄};const mutations = { changeLogin(state,data){ state.isLogin = data; }};二丶在用戶登錄時(shí)改變登錄狀態(tài);
this.$store.commit(‘changeLogin‘,‘100‘) //登錄后改變登錄狀態(tài) isLogin = 100 ;
?
三丶重點(diǎn)來了;
在你的路由入口加上導(dǎo)航鉤子,具體什么意思看代碼;
一丶設(shè)置需要校驗(yàn)的路由
{ path: ‘/admin‘, component: Admin, meta:{auth:true} // 設(shè)置當(dāng)前路由需要校驗(yàn) 不需要校驗(yàn)的路由就不用寫了;不要問為什么,自己去看官網(wǎng) } 二丶路由跳轉(zhuǎn)并校驗(yàn)
router.beforeEach((to,from,next) => { if(to.matched.some( m => m.meta.auth)){ // 對路由進(jìn)行驗(yàn)證 if(store.state.isLogin==‘100‘) { // 已經(jīng)登陸 next() // 正常跳轉(zhuǎn)到你設(shè)置好的頁面 }else{ // 未登錄則跳轉(zhuǎn)到登陸界面,query:{ Rurl: to.fullPath}表示把當(dāng)前路由信息傳遞過去方便登錄后跳轉(zhuǎn)回來; next({path:‘/login‘,query:{ Rurl: to.fullPath} }) } }else{ next() } })以上所有內(nèi)容就是錯(cuò)新技術(shù)頻道小編介紹的vue路由跳轉(zhuǎn)時(shí)判斷用戶是否登錄功能的實(shí)現(xiàn),我們需要選擇哪種實(shí)現(xiàn)可以根據(jù)自身的需求進(jìn)行操作。
新聞熱點(diǎn)
疑難解答
圖片精選