? ? 五种状态:
? ? ? ? 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数据丢失问题。