vuex moldule模式 mapmutations
时间: 2023-06-30 10:22:13 浏览: 49
在 Vuex 的模块模式中,我们可以使用 `mapMutations` 辅助函数来快速创建组件中的映射方法,使得组件能够直接调用 Vuex 中的 mutations。
`mapMutations` 函数接收一个对象作为参数,对象的属性名是组件中需要映射的方法名,属性值是 Vuex 中 mutations 中对应的方法名或者是一个包含 type 和 handler 两个属性的对象。
使用 `mapMutations` 函数,可以将 mutations 映射到组件的 methods 中,然后在组件中使用 `this` 访问映射的方法即可。
示例代码如下:
```javascript
// Vuex store 模块 mutations
const moduleA = {
mutations: {
incrementA(state) {
state.countA++
}
}
}
// 组件中使用 mapMutations 映射 mutations
import { mapMutations } from 'vuex'
export default {
methods: {
...mapMutations('moduleA', {
increment: 'incrementA'
})
},
created() {
// 调用 mutations 中的方法
this.increment()
}
}
```
在上面的代码中,`mapMutations` 函数的第一个参数是 Vuex store 中的模块名称,第二个参数是一个对象,对象的属性名是组件中需要映射的方法名,属性值是 Vuex 中 mutations 中对应的方法名或者是一个包含 type 和 handler 两个属性的对象。在组件中使用 `...` 操作符将映射的方法展开到 methods 对象中,然后就可以在组件的方法中使用映射的方法了。