vuex
是一个专门为Vue.js
应用程序开发的状态管理模式
可以把这个状态理解为data
中的属性,可以供其他组件使用
vuex
:有五种默认的基本对象
state
:存储状态getters
:对数据获取之前的再次编译,可以理解为state的计算属性。在组件中使用$store.getters.fun()
可以调用其中的方法mutations
:修改状态,同步操作。在组件中使用$store.commit('', params)
。跟自定义事件类似actions
:异步操作,在组件中使用$store.dispath('')
modules
:store的子模块,为了开发大型项目,方便状态管理而使用的
使用
mutations使用的坑:
this.$store.commit('mutationsReduceCount',n);
直接这样调用是不可的,因为在Store
的实例上除了getters
其他几个都是私有属性,因此不允许直接调用,组件中使用的时候要通过```javascript
// 1、引入
import { mapMutations } from 'vuex'
// 2、映射
methods:{
...mapMutations([
'mutationsAddCount', //将this.mutationsAddCount()
映射为this.$store.commit('mutationsAddCount')
'mutationsReduceCount'
])
}