五种状态:
state: 存储公共数据 this.$store.state
mutations:同步操作,改变store的数据 this.$store.commit()
actions: 异步操作,让mutations中的方法能在异步操作中起作用 this.$store.dispatch()
getters: 计算属性 this.$store.getters
modules: 子模块
使用场景:
用户信息、菜单信息、购物车信息
解决vuex页面刷新数据丢失问题的方式:
办法一:将vuex中的数据直接保存到浏览器缓存中(sessionStorage、localStorage、cookie)
办法二:在页面刷新的时候再次请求远程数据,使之动态更新vuex数据
办法三:在某一组件向后台请求远程数据保存在vuex,并且在页面刷新前将vuex的数据保存至sessionStorage。在另一组件优先使用vuex内的数据,只有刷新后还没取到后台数据,才会从sessionStorage里取。
优点:每次刷新页面更新sessionStorage,确保数据的安全性。刷新后还没取到后台数据就从sessionStorage中取,防止网络延迟、数据量大时vuex数据丢失问题。