你好!关于刷新页面,Vuex实例store中保存的token为什么要重新获取。
Closed this issue · 6 comments
FisNew commented
问题产生:
我在登录的时候如你一样去把token,user放入了state中,我设想的情况时,既然store挂载的是一个vue实例,那么不论什么情况,只要不重建vue实例,store中的数据就不该丢失。但是我就是在刷新的时候,store中的数据会清空。这和我预期不符。参考你的代码,有一段是刷新之后重新获取token的代码。(router.js文件中38行),想必你能为我解答这个疑惑!
superman66 commented
你的理解没有错。Vue 实例在的时候,store 中的数据确实一直会保存着。
但是页面刷新的时候,会重新加载 Vue,所以就将 Vuex 中的 state 都刷新了,相当于初始化了。所以导致 state 数据丢失。
FisNew commented
那如果是这样的话,我觉得有点不合理。如果state中保存了不止是token,还有很多数据,比如购物车里的诸多商品,难道我们要把这些全部放入localStorage中,用户刷新我们就要去取出来再重新赋值,那这样vuex显得鸡肋了。
superman66 commented
vuex 是状态管理,而不是数据存储。
FisNew commented
的确,vuex是状态管理,不是数据存储。我的例子可能不恰当。但是试想一下我保存的user,即当前的用户信息,甚至是一个登陆状态,在一次刷新之后被重置了,用户可能会因为一次刷新而导致自己重新登陆?这不合理,我现在也没有搞清楚是我的用法有问题,还是有相对的解决办法。
superman66 commented
就算你不用 vuex,你还是需要将用户信息通过本地存储保存下来。vuex 只不过在管理的你的状态,原本数据该保存到 cookie 或者 localStorage的,照样需要保存的,跟 vuex 没有关系。你可能需要再理解下什么是状态管理。
FisNew commented
好的,我再去好好读一下文档。谢谢