vue 中使用vuex和localStorage保存登录状态
需求:
在写vue时,将用户信息保存在vuex中,但是F5刷新之后,用户信息没有了,需要重新登陆。每次都重新登陆会导致用户体验不好。
原理:
vuex中的数据在页面刷新之后其中的数据会初始化,这就导致组件之间通过vuex传递的数据在用户F5刷新页面之后会丢失
解决办法:使用vuex和localStorage保存登录状态
话不多说,上代码!!!
vuex中:
const state = {
//先去localStorage中获取数据
userInfo: JSON.parse(localStorage.getItem("userInfo")) || {},
}
const mutations = {
setuserInfo(state, v) {
//将传递的数据先保存到localStorage中
localStorage.setItem(‘userInfo‘, JSON.stringify(v));
// 之后才是修改state中的状态
state.userInfo = v;
},
}组件中逻辑:在登录成功之后提交mutations,更改用户信息
if(res.data.code === 0){
this.user = res.data.data
this.$store.commit("setuserInfo", this.user);
this.$Message[‘success‘]({
background: true,
content: ‘登陆成功,即将跳转...‘
});
this.$router.push(‘/chat‘)
}组件中逻辑:退出也要更新信息(注意不要写成null,要写成‘‘)
this.$store.commit(‘setuserInfo‘,‘‘);//更新userInfo
相关推荐
MrSunOcean 2019-09-08
wetyu 2020-08-02
PkJY 2020-06-17
拭血 2020-06-02
KungLun 2020-02-03
芯果科技蔡彦 2020-04-14
H女王范儿 2019-11-18
baynkbtg 2019-10-31
zjnig的信息仓库 2014-11-10
csdnInfo 2015-02-25
OldSoldier 2012-01-04
88264154 2015-12-27
大数据实战派 2015-12-31
Teresasmida 2017-04-05
phillip 2019-04-15
xiluoenm 2013-05-16
LeavesYu 2019-07-01
caiselangren 2019-07-01