前几天在学vuex对mutations和actions进行了比较学习,现在说一下自己对两个的理解:

相同点:mutations和action都是用来改变Vuex store的状态的;
不同点:mutations提供的回调函数是同步的;
而actions提供的方法是异步的,此外,actions的方法最终还是通过调用mutations的方法来实现修改vuex的状态的。

解析:在使用mutations或action时,我们不能直接在需要提供修改代码的地方编写mutations或 actions。实际上,mutations或action只能在注册vuex的代码段里出现。换而言之,mutations或action就像是在注册事件,写在里面的方法就像是要注册的实例,他们自身就像是一个“部门”用来告知全系统,在我mutations里面的回调函数“兄弟”就是用来修改vuex状态的方法,你们要修改vuex状态就找他们,他们是同步的。而actions也一样,他告诉全系统在actions里面的回调函数“兄弟”是用来异步修改vuex状态的。另外,表面上看,actions跟mutations互不相干业务不同,实际上action就是一“中介”,最后他还是需要以客户的身份向mutations申请业务服务的。

对了,
mutations的联系途径(使用方法)是

this.$store.commit(回调函数名 , 回调函数除第一个外的参数)

action的联系途径(使用方法)是

this.store.dispatch(回调函数名 , 回调函数除第一个外的参数)

以上就是我对mutations和actions的理解,如有错误望指出。

Logo

前往低代码交流专区

更多推荐