vue2中watch里如何调用mutation里的函数
时间: 2024-09-14 12:04:46 浏览: 37
在Vue2中,如果你想要在`watch`里调用`mutation`里的函数,你需要确保你有一个Vue实例,并且已经定义了`store`中的`mutation`。`mutation`是Vue中管理状态的同步函数。在`watch`中,你可以使用`this.$store.commit()`方法来触发一个`mutation`。以下是一个基本的示例:
1. 首先,在你的`store`中定义一个`mutation`,比如`SET_DATA`。
```javascript
// store.js
export default new Vuex.Store({
state: {
data: null
},
mutations: {
SET_DATA(state, payload) {
state.data = payload;
}
}
});
```
2. 在你的Vue组件中,使用`watch`来监听某个数据的变化,当检测到变化时,通过`this.$store.commit()`调用相应的`mutation`。
```javascript
// MyComponent.vue
<template>
<div>
<!-- Some code -->
</div>
</template>
<script>
export default {
data() {
return {
someData: '' // 假设这是你想要监听的数据
};
},
watch: {
someData(newVal, oldVal) {
this.$store.commit('SET_DATA', newVal); // 在watch中调用mutation
}
}
};
</script>
```
在这个例子中,每当`someData`的值发生变化时,`watch`会检测到这个变化,并调用`SET_DATA`这个`mutation`,从而更新状态树中的`data`。
阅读全文