vuex中mutation => [mutation, value => store.commit(mutation, value)]
时间: 2024-04-30 13:23:55 浏览: 14
mutation是Vuex中用于修改state状态的操作函数,它接收两个参数:state和payload。其中,state是当前的state状态,payload是传递给mutation的参数。mutation函数中通过修改state的属性值来更新状态。
在Vuex中,我们需要通过commit方法来触发mutation的执行。commit接收两个参数:mutation和value。其中,mutation是要执行的mutation函数,value是传递给mutation的参数。
下面是一个示例代码:
```
// 定义mutation函数
const mutations = {
increment(state, payload) {
state.count += payload.amount
}
}
// 在组件中使用commit方法来触发mutation的执行
this.$store.commit('increment', { amount: 2 })
```
在上面的代码中,我们定义了一个名为increment的mutation函数,它接收state和payload两个参数,用于更新state中的count属性。然后,在组件中通过this.$store.commit方法来触发increment函数的执行,传递了一个payload参数{ amount: 2 },用于更新count属性的值。
相关问题
loginQzone({commit}, {qNum, ptToken}) { return new Promise((resolve, reject) => { LoginQzone(qNum, ptToken).then(res => { store.state.qzoneUserInfo.qq = qNum store.state.qzoneUserInfo.cookies = res.data.data commit("SET_QZONEUSERINFO",) resolve(res.data) }).catch(err => reject(err)) }) } 如何给SET_QZONEUSERINFO赋值
在上述代码中,可以通过传递一个参数来给 `SET_QZONEUSERINFO` 赋值。具体来说,可以在 `commit` 中传递一个包含 `type` 和 `payload` 的对象,其中 `type` 为 `SET_QZONEUSERINFO`,`payload` 为需要赋给该状态的值。例如:
```
commit("SET_QZONEUSERINFO", { qq: qNum, cookies: res.data.data })
```
这将把 `qq` 和 `cookies` 的值分别设置为 `qNum` 和 `res.data.data`。然后,你的 `SET_QZONEUSERINFO` mutation 可以通过 `payload` 参数来获取这些值并进行相应的状态更新。
this.$store.commit在vuex中存储
在 Vuex 中,你可以使用 `this.$store.commit` 方法提交一个 mutation 来修改 store 中的状态。
例如,假设你有一个名为 `counter` 的状态,你可以创建一个 `increment` 的 mutation 来增加计数器的值:
```javascript
const store = new Vuex.Store({
state: {
counter: 0
},
mutations: {
increment(state) {
state.counter++
}
}
})
```
然后,在你的组件中,你可以通过调用 `this.$store.commit('increment')` 方法来提交这个 mutation:
```javascript
export default {
methods: {
increment() {
this.$store.commit('increment')
}
}
}
```
当你调用 `this.$store.commit('increment')` 时,Vuex 将会调用 `increment` mutation,然后修改 `counter` 状态的值。这样做的好处是,所有使用该状态的组件都可以自动更新,以反映修改后的状态。