Vuex和redux是一个状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
Vuex 和单纯的全局对象有以下两点不同:
1、Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
2、你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
vuex中,有默认的五种基本的对象:
1、state:存储状态(变量)->子组件能通过 this.$store.state.name
访问到state里面的属性;mapState 辅助函数;store.state 来获取状态对象,以及通过 store.commit 方法触发状态变更。
2、getters:是一个对store中的state做处理的公共方法,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。对数据获取之前的再次编译,可以理解为state的计算属性。我们在组件中使用 $sotre.getters.fun()
通过属性访问:Getter 会暴露为 store.getters 对象,你可以以属性的形式访问这些值:store.getters.d