欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在Vuex使用dispatch和commit来调用mutations的区别详解

程序员文章站 2022-03-14 18:08:08
main.js中 import vuex from 'vuex' vue.use(vuex); const store = new vuex.store({...

main.js中

import vuex from 'vuex'
vue.use(vuex);
const store = new vuex.store({
  state: {
    nickname: "",
    cartcount: 0  
  },
  mutations: {
    updateuserinfo(state,nickname) {
      state.nickname = nickname;
    },
    updatecartcount(state,cartcount) {
      state.cartcount += cartcount;
    }
  },
 actions: {
 updateuserinfo(context) {
  context.commit("updateuserinfo");
 },
 updatecartcount(context) {
  context.commit("updatecartcount");
 }
 }
})
new vue({
  el: "#app",
  store,
  router,
  template: '<app/>',
  components: {app}
})

组件中:

methods: {
  increment(){
  this.$store.dispatch("updateuserinfo", 'nick'); //this.$store.commit("increment", 'nick');
  },
  decrement() {
  this.$store.dispatch("updatecartcount", 1); // this.$store.commit("decrement", 1);
  }
 }
 

区别:

dispatch:含有异步操作,例如向后台提交数据,写法: this.$store.dispatch('mutations方法名',值)

commit:同步操作,写法:this.$store.commit('mutations方法名',值)

以上这篇在vuex使用dispatch和commit来调用mutations的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。