猿问

关于vuex保存登录状态刷新清空的问题

想在登录成功后将返回的信息保存到logindata里

代码如下定义了一个actions异步请求的方法
https://img3.mukewang.com/5c8efbde0001a53f06030361.jpg

在组件里通过dispatch触发,登录成功后我先将登录状态保存到了localstorage里,然后获取里面的数据保存到logindata里,最后再将state里的所有数据保存到localstorage里,但是一刷新还是全部清空了,请问这是为何。最后明明都保存到localstorage里了,有没有什么办法能让他刷新不清空vuex

叮当猫咪
浏览 1372回答 2
2回答

开心每一天1111

首先一刷新所有JS代码都重新执行了,所以vuex中的state肯定也是重置的,你的想法没错,把从远端获取到的数据存到浏览器本地储存,但是我好像没看你初始化vuex的一步,就是应用重启时应该把本地存储里的数据放到vuex中的state里。很简单const localLoginData = localStorage.getItem('data')const store = new Vuex.Store({    state: {        logindata: localLoginData ?  JSON.parse(localLoginData) : {}    }})

牛魔王的故事

首先你可以console下请求接口的data参数是否有,因为刷新页面,vuex都会重新置空。其次console下获取的data是否存到本地来了,然后console下存入到state的action函数是否有值。自己多找找,一般是可以找到原因的。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答