vue-clie学习-Mutations 状态提交

Mutations 提交

状态选项可以改变状态的值

//About.vue
<button @click="increment">全局计数</button>
methods : {
    increment() {
        this.$store.commit('increment')
    }
}
//修改状态 store/index.js
mutations: {
    increment(state) {
        state.count++
    },
},

提交载荷(payload)
如果想要提交额外参数,可以通过参数二进行传递

methods : {
    setAge(e) {
        this.$store.commit('setAge', e.target.value)
    }
}
mutations: {
    setAge(state, value) {
        state.age = value
    }
},

提交载荷(payload),在大多数情况下传递一个对象,可以包含多个字段

this.$store.commit('setAge', e)

setAge(state, payload) {
    state.age = payload.target.value
}

辅组函数 mapMutations,用法也比较简单

import { mapMutations } from 'vuex'

methods : {
    // increment() {
    // this.$store.commit('increment')
    // }
    ...mapMutations(['increment']) //支持荷载,会自动传参
}
//如果名称不一样:比如触发为 add(),那么写法如下
...mapMutations({
    add : 'increment'
})

PS:Mutations 必须是同步函数,否则无法追踪数据

posted @ 2021-09-27 20:19  keacua  阅读(127)  评论(0)    收藏  举报