您的位置:首页 > Web前端 > Vue.js

Vue中使用vuex,页面刷新登录状态不丢失,退出登录后清空登录状态的解决方法

2019-05-28 16:39 1671 查看

前端小白,最近使用vue做用户的登录/退出,在开发过程中遇到的一些问题,记录下来。

由于vue自身特性的原因,vuex中的数据在页面刷新之后其中的数据会初始化,这就导致组件之间通过vuex传递的数据在用户f5刷新页面之后会丢失。

搜索了一些方法,使用localStorage实现页面刷新之后数据不丢失的方法

代码如下

vuex

const state = {
userInfo: JSON.parse(localStorage.getItem("userInfo")) || {},//先去localStorage中获取数据
}
const mutations = {
setuserInfo(state, v) {
localStorage.setItem('userInfo', JSON.stringify(v));//将传递的数据先保存到localStorage中
state.userInfo = v;// 之后才是修改state中的状态
},
}

组件中使用

if (rst.data.status == 1) {
//登录成功
let userInfo = rst.data.userInfo
this.$store.commit("setuserInfo", userInfo);//更新userInfo
}

做到这里,登录成功后F5刷新页面,登录状态依旧保持了。(一阵狂喜)
但是当点击退出后,虽然发送后台退出成功了,但是页面登录状态还是依旧保持。。。因此需更新userInfo值为空

代码如下

if (rst.data.status == 1) {
//退出成功
this.$store.commit('setuserInfo','');//更新userInfo
}

到这里,遇到的问题完美解决了。
前端小白,如代码中有什么不足请多多指教哦!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐