Vuex中的actions的参数

本文详细解析了Vuex中Actions的功能与使用,说明了Actions如何通过Commit改变状态,并支持异步操作。介绍了Action函数参数context的组成部分及其使用方法,通过解构赋值简化调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/qq_41820577/article/details/100530426

Vuex中,actions用于进行异步操作。它类似于mutation,但是专门用来代替mutation进行异步操作。通过定义actions,我们可以触发这些actions来执行一些异步任务,比如网络请求。在Vuex中,有两种方式来触发actions。 第一种方式是直接触发actions函数。通过调用this.$store.dispatch("actionName")来触发指定的action。例如,this.$store.dispatch("addNAsync", 5)会触发名为addNAsync的action,并传递参数5。 第二种方式是通过导入mapActions函数来按需导入actions函数,并将其映射为当前组件的methods函数。通过这种方式,我们可以直接在组件中调用映射后的函数来触发actions。例如,可以使用import { mapActions } from "vuex"来按需导入mapActions函数,并将指定的actions函数映射为当前组件的methods函数。 总结来说,在Vuex中,我们可以使用actions来进行异步操作,并可以通过直接触发函数或按需导入mapActions函数来触发actions函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Vuex系列之 Action 的使用](https://blog.youkuaiyun.com/weixin_62277266/article/details/128439042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Vuex-actions的使用](https://blog.youkuaiyun.com/weixin_48931875/article/details/109119213)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值