有时令牌提交到Vuex存储,有时不提交。
userLogin() {
axios.post('api/login', this.logindata,)
.then(response => {
let token = JSON.parse(localStorage.getItem('token'));
this.$store.commit('setToken', token);
this.logindata = {};
this.loaded = true;
this.success = true;
this.$router.push({path: '/'});
});
}
这里是store.js
:
export default new Vuex.Store({
state: {
token: JSON.parse(localStorage.getItem('token')),
isLoggedIn: !!localStorage.getItem('token'),
cart: []
},
mutations: {
setToken(state, token) {
state.token = token;
},
}
});
这是Vue前端:
mounted: function () {
if (!this.$store.state.isLoggedIn) {
this.$router.push('/login')
}
}
结果:有时重定向到登录,有时不重定向。有什么帮助吗?
答案 0 :(得分:0)
只有登录后,我才会在要加载的组件上制作一个v-if
,这样您就可以绑定一个computed
属性,这样您就可以拥有一个侦听器。
<myComponent v-if="computedProperty"/>
computed: {
computedProperty(){
return this.$store.state.isLoggedIn
...