Mutation
mutation 用于变更 Store 中的数据。
- 只能同过 mutation 变更 Store 数据,不可以直接操作 Store 中的数据。
- 通过这种方式虽然繁琐,但是可以集中监控所有数据的变化。
- mutation 必须同步执行
mutation 对象中的函数会有一个 state 预置参数。
// store/index.jsconst ADD = 'add'const store = new Vuex.Store({state: {count: 0},mutations: {add(state,paylaod){// 变更数据state.count+=paylaod.amount},[ADD](state){state.count+=paylaod.amount}}})
触发 mutation 第一种方式
// 组件中methods: {handleBtn(amount) {this.$store.commit('add', { amount })}},// ormethods: {clickHandler(n) {this.$store.commit({type: 'subtract',n})}},
触发 mutation 第二种方式:mapMutation 辅助函数
methods: {// 将指定的 mutation 函数,映射为当前组件的 method...mapMutations(['subtract']),},
