一、state
vuex中的数据源,需要保存的数据就保存在这里。
vuex的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutationthis.$store.commit("mutation的方法名","目标值")
。这样使得我们可以方便地跟踪每一个状态的变化。
二、getters
相当于vue中的computed,getter的返回值会根据它的依赖被缓存起来,且只有当他的依赖值发生变化时才会被重新计算。
三、mutations
用来改变state中的值,提交mutations中的方法来修改state的值,this.$store.commit("mutation的方法名","目标值")
四、actions
提交的是mutation,而不是直接变更state,可以包含任意异步操作。
this.$stote.dispatch("actions中的方法名")
mapState,mapGetters代替this.$store.state,this.$store.getters,放在.vue文件的computer中。
mapMutations,mapActions代替this.$store.commit,this.$store.dispatch,放在.vue文件的methods中。
vuex中的数据,在用户强制刷新页面的时候就会丢失。在此需要用sessionStorage来存储一下
网友评论