zoukankan      html  css  js  c++  java
  • 在Vuex使用 以及 dispatch和commit来调用mutations的区别

    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方法名',值)

  • 相关阅读:
    整型数字转utf8
    cmake构建时指定编译器架构(x86 or x64)
    tcp echo server libuv
    VS2015编译boost1.62
    android rom开发
    游戏昵称
    乐观锁和悲观锁
    数据库锁机制
    MySQL事务实现原理
    MySQL事务
  • 原文地址:https://www.cnblogs.com/myRain/p/8259756.html
Copyright © 2011-2022 走看看