vuex 在页面刷新后state里面的数据为空

场景: 用 vue + vue-router + vuex 写的页面,在安卓的qq浏览器上用的时候不小心下拉了,发现浏览器自动刷新,这时候state里面的内容就为空了。

问题:vuex 在页面刷新后获取到的state里面的数据为空, 网上的方案是把数据放到Storage里面,那么为什么不直接把数据存到Storage里面,而要经过vuex么?这样做是不是多此一举,感觉vuex没有意义了。

阅读 6.6k
4 个回答

你可以这样理解。 vuex是一个集中的数据仓库,任何数据都可以存放在里面。然后你可以通过从vuex中拿到数据然后渲染在视图上。但是页面刷新之后vuex中的数据肯定是被初始化了。就相当于我们刷新页面页面的js文件css文件等都会重新加载一样。但是页面刷新所有的请求应该都会重新请求的。所以我觉得估计是你的vuex使用的有问题。
通常来说,vuex里面的数据是通过mutations进行更新的(这个更新必须是同步的),如果是异步的请求请使用actions来提交commit,然后更新state中的数据

vuex 里的数据能实时更新到你的视图

vuex作为组件之间传递信息使用 一般中小型的项目不用vuex 你要想保存住 要么你存到缓存中 要么你存到数据库 而不是把vuex当做仓库 他只是状态管理

如果不做复杂的项目,完全没有必要使用vuex,vuex仅仅是提供数据集中存放以及debug功能的小工具

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题