現(xiàn)在問題是 用 router-beforeEach來判斷是否登錄,當(dāng)走login.vue時(shí),異步請(qǐng)求結(jié)果,等結(jié)果回來后,存放到vuex中,并跳轉(zhuǎn).但跳到/時(shí),總是獲取不到 isLogin,哦自己寫錯(cuò)變量了?
index.js
const router = new Router({
// mode: 'history',
routes: [
// {
// path: '/',
// redirect: '/login'
// },
{
path: '/login',
component: resolve => require(['../components/login.vue'], resolve)
},
{
path: '/',
component: resolve => require(['../components/Home.vue'],resolve),
children: [
{
path: '',
component: resolve => require(['../common/admin.vue'],resolve)
}
]
}
]
})
main.js
// state 存放數(shù)據(jù)
// actions 觸發(fā) 異步操作
// mutations 觸發(fā)同步 操作
// geterrs 獲取state
// modules 獲取
var store = new Vuex.Store({
state: {
userInfo: {
name: '',
id: "",
phone: ''
}
},
actions: {
LOAD_USER_OUTHA(state,params) {
console.log(state)
axios.post('http://space.it-weyoung.com/admin/oauth/token',{
grant_type: "password",
client_id: 3,
client_secret: "ZffWIz4NSsXqLTVgQdGH6awogIEKm7vymkS3dHFX",
username: params.name,
password: params.pass
}).then((response) => {
let data = response.data;
console.log(data)
if(data.access_token){
state.commit('SET_PROJECT_LIST',{
access_token: data.access_token,
token_type: data.token_type,
isLogin: true
});
window.localStorage.setItem("isLogin",true)
}
})
}
},
mutations: {
SET_PROJECT_LIST: (state,params) => {
state.token = params.access_token;
state.type = params.token_type;
state.isLogin = params.isLogin;
}
},
getters: {
isLogin: state => {
return state.isLogin; // 這一句寫錯(cuò)了
return state.userInfo.isLogin 就可以了
},
token: state => {
return state.token;
},
token_type: state => {
return state.token
}
},
modules: {
}
});
/* eslint-disable no-new */
var vm = new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
// router.beforeEach((to, from, next) => {
// var isLogin = router.app.$store.getters.isLogin;
// console.log(router.app.$store)
// if(!isLogin){ // 未登錄時(shí)
// console.log("未登錄",isLogin)
// if (to.path !== '/login') { // 路徑不等于 login
// return next({path: '/login'}); // 跳到 login
// }else {
// next(); // 路徑等于 login 就跳轉(zhuǎn)到 login
// }
// }else{
// console.log("登錄",isLogin)
// if (to.path === '/login') {
// return next({path: '/'});
// }
// next();
// }
// })