mutation与action

Posted 颠覆者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mutation与action相关的知识,希望对你有一定的参考价值。

mutation

作用: 更改state的状态

说明: 每个mutation对象都有字符串类型(type)与回调函数,在回调函数内进行状态修改,回调函数的第一个参数为state

eg:

mutations: {
    changeMainOption (state, index) {
          state.preMainOption= index;
    },
    changeShade(state, type){
        state.mainShade= type;
    },
    changeprePerser(state, _index){
        state.prePerser= _index;
    }
}

调用方式:

1.载荷风格

this.$store.commit(‘changeMainOption‘, 1)

//index为1

2.对象风格

this.$store.commit({type: ‘changeMainOption‘, anyName: 1})

//index为{type: ‘changeMainOption‘, anyName: 1}

注意:

mutation必须是同步函数,

mutation第二个参数在载荷风格时为commit的第二个参数,对象风格时为commit的对象参数。

 

action

功能: 提交mutation,可包含异步操作

说明: action函数接收一个与store有相同属性方法的实例context来提交mutation

eg:这

actions: {
    toChangeMainOption (context){
      setTimeout(()=> {context.commit(‘changeMainOption‘, 1)}, 1000)
    },
    toChangeMainOption2 ({commit}){ //es6参数解构写法
        commit(‘changeMainOption‘, 2)
    }
}

调用方式:

1.载荷风格

this.$store.dispatch(‘‘toChangeMainOption", {val: 1})

2.对象风格

this.$store.dispatch({type: ‘‘toChangeMainOption", val: 1})

以上是关于mutation与action的主要内容,如果未能解决你的问题,请参考以下文章

vuex里的state,actions,mutations用法与理解

vuex--mutation,action个人理解

Vuex中action和mutation 区别

mutation与vuex区别

状态管理vuex的action,mutation,getter,state各种姿势的理解与应用

Vuex action 异步函数