Appearance
在组件中提交 Mutation
本节目标:理解“在组件中提交 Mutation”的核心思路,并能把它用于实际开发或面试表达。 你可以在组件中使用
this.$store.commit('xxx')提交mutation,或者使用mapMutations辅助函数将组件中的methods映射为store.commit调用(需要在根节点注入store)。 import { mapMutations } from 'vuex' export default { // ... methods: { ...mapMutations([ // 将this.increment()映射为this.$store.commit('increment')'increment', //mapMutations也支持载荷: // 将this.incrementBy(amount)映射为this.$store.commit('incrementBy', amount)'incrementBy' ]), ...mapMutations({ // 将this.add()映射为this.$store.commit('increment')add: 'increment' }) } }
下一步:Action 在 mutation 中混合异步调用会导致你的程序很难调试。例如,当你调用了两个包含异步回调的 mutation 来改变状态,你怎么知道什么时候回调和哪个先回调呢?这就是为什么我们要区分这两个概念。在 Vuex 中,mutation 都是同步事务:
store.commit('increment')//任何由 "increment" 导致的状态变更都应该在此刻完成。`` 为了处理异步操作,让我们来看一看
Action。 > 来自
<https://vuex.vuejs.org/zh/guide/mutations.html>