vue中的js文件怎么调用vuex中mutations里面的方法
时间: 2023-02-07 16:31:59 浏览: 273
在 Vue 项目中,你可以使用 Vuex 来管理应用状态,在你的 Vue 组件中调用 Vuex 中的 mutation 方法有两种方式:
1. 通过 `this.$store.commit` 调用,例如:
```
this.$store.commit('increment', 10)
```
2. 通过使用 mapMutations 辅助函数将组件的 methods 映射为 store.commit 调用,例如:
```
import { mapMutations } from 'vuex'
export default {
// ...
methods: {
...mapMutations(['increment']),
incrementIfOddOnRootSum ({ state, commit, rootState }) {
if ((state.count + rootState.count) % 2 === 1) {
commit('increment')
}
}
}
}
```
然后你就可以在组件中通过调用 `this.increment()` 来触发 increment mutation 了。
希望这能帮到你。
相关问题
vue3如何调用vuex中mutations里的方法
在 Vue3 中调用 Vuex 中的 mutations 方法非常简单,只需要使用 `store.commit('mutationName', payload)` 的方式即可。
其中,`mutationName` 是你在 Vuex store 中定义的 mutation 名称,`payload` 是传递给 mutation 的数据。比如,如果你在 Vuex 中定义了一个 mutation:
```javascript
const store = createStore({
state: {
count: 0
},
mutations: {
increment(state, payload) {
state.count += payload
}
}
})
```
那么,在 Vue3 组件中,你可以这样调用该 mutation:
```javascript
import { useStore } from 'vuex'
export default {
setup() {
const store = useStore()
function handleClick() {
store.commit('increment', 1)
}
return {
handleClick
}
}
}
```
这里我们使用了 `useStore` 函数从 Vuex store 中获取 store 实例,然后在 `handleClick` 方法中调用了 `store.commit` 方法来触发 `increment` mutation。
vue3如使用vuex中mutations中写好的方法
在 Vue 3 中,使用 Vuex 的方式与 Vue 2 中基本相同。首先需要在项目中安装 Vuex:`npm install vuex`。
然后在创建 Vue 应用时引入 Vuex 并将其挂载到应用中:
```javascript
import { createApp } from 'vue'
import App from './App.vue'
import store from './store'
createApp(App).use(store).mount('#app')
```
其中,`store` 是 Vuex 的实例,需要在 `store.js` 中定义。
在 `store.js` 中,可以定义状态、getters、mutations、actions 等。
如果要在组件中使用 mutations 中的方法,可以通过 `mapMutations` 辅助函数将 mutations 映射到组件的 methods 中。
```javascript
import { mapMutations } from 'vuex'
export default {
methods: {
...mapMutations({
increment: 'increment' // 将 mutations 中的 increment 映射到组件中的 increment 方法
})
}
}
```
然后就可以在组件中像调用普通方法一样调用 mutations 中的方法了:
```javascript
this.increment()
```
阅读全文