场景: 用 vue + vue-router + vuex 写的页面,在安卓的qq浏览器上用的时候不小心下拉了,发现浏览器自动刷新,这时候state里面的内容就为空了。
问题:vuex 在页面刷新后获取到的state里面的数据为空, 网上的方案是把数据放到Storage里面,那么为什么不直接把数据存到Storage里面,而要经过vuex么?这样做是不是多此一举,感觉vuex没有意义了。
场景: 用 vue + vue-router + vuex 写的页面,在安卓的qq浏览器上用的时候不小心下拉了,发现浏览器自动刷新,这时候state里面的内容就为空了。
问题:vuex 在页面刷新后获取到的state里面的数据为空, 网上的方案是把数据放到Storage里面,那么为什么不直接把数据存到Storage里面,而要经过vuex么?这样做是不是多此一举,感觉vuex没有意义了。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
你可以这样理解。 vuex是一个集中的数据仓库,任何数据都可以存放在里面。然后你可以通过从vuex中拿到数据然后渲染在视图上。但是页面刷新之后vuex中的数据肯定是被初始化了。就相当于我们刷新页面页面的js文件css文件等都会重新加载一样。但是页面刷新所有的请求应该都会重新请求的。所以我觉得估计是你的vuex使用的有问题。
通常来说,vuex里面的数据是通过mutations进行更新的(这个更新必须是同步的),如果是异步的请求请使用actions来提交commit,然后更新state中的数据