actions可以说是mutation的加强版,它可以通过commit mutations中的方法改变状态,最重要的是它可以进行异步操作,在组件中通过$store.dispatch来触发action中定义的方法。

今天是要来说一下action函数的参数

一般在使用actions方法时我们会像下面的书写方式:

actions:{
    add_num({commit}){
        console.log({commit})
        setTimeout(() => {
            commit('change',100);
        },2000)
    }
}

而很多人都会疑惑{commit}是代表了什么,又是怎么来的。下面就来说一下,action函数可以接收一个与store实例具有相同方法的属性context,这个属性中包括下面几部分:

 context:{
		state,   等同于store.$state,若在模块中则为局部状态
		rootState,   等同于store.$state,只存在模块中
		commit,   等同于store.$commit
		dispatch,   等同于store.$dispatch
		getters   等同于store.$getters
}

常规写法调用的时候会使用context.commit,但更多的是使用es6的变量解构赋值,也就是直接在参数的
位置写自己想要的属性,如:{commit}。

es6的解构赋值:https://blog.csdn.net/qq_41820577/article/details/100530426

Logo

前往低代码交流专区

更多推荐