1 回答

TA貢獻1815條經(jīng)驗 獲得超13個贊
一丶首先在用戶登錄前后分別給出一個狀態(tài)來標識此用戶是否登錄(建議用vuex);
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
var state = {
isLogin:0, //初始時候給一個 isLogin=0 表示用戶未登錄
};
const mutations = {
changeLogin(state,data){
state.isLogin = data;
}
};
復(fù)制代碼
二丶在用戶登錄時改變登錄狀態(tài);
1
this.$store.commit('changeLogin','100') //登錄后改變登錄狀態(tài) isLogin = 100 ;
三丶重點來了;
在你的路由入口加上導航鉤子,具體什么意思看代碼;
一丶設(shè)置需要校驗的路由
{ path: '/admin',
component: Admin,
meta:{auth:true} // 設(shè)置當前路由需要校驗 不需要校驗的路由就不用寫了;不要問為什么,自己去看官網(wǎng)
}
二丶路由跳轉(zhuǎn)并校驗
復(fù)制代碼
router.beforeEach((to,from,next) => {
if(to.matched.some( m => m.meta.auth)){
// 對路由進行驗證
if(store.state.isLogin=='100') { // 已經(jīng)登陸
next() // 正常跳轉(zhuǎn)到你設(shè)置好的頁面
}else{
// 未登錄則跳轉(zhuǎn)到登陸界面,query:{ Rurl: to.fullPath}表示把當前路由信息傳遞過去方便登錄后跳轉(zhuǎn)回來;
next({path:'/login',query:{ Rurl: to.fullPath} })
}
}else{
next()
}
})
- 1 回答
- 0 關(guān)注
- 3045 瀏覽
添加回答
舉報