最近上手了vuex,其它几点都很好理解。
但是对于vuex中actions一直有不解。
竟然能在组件里用commit提交mutation,然后改变state的数据。为什么又要用actions去触发mutation,再去改变数据呢?那样不是更麻烦了吗?
想请教一下大家,actions与mutation区别,除了它可以异步操作之外。
还有什么更具体实际的好处?或者说更实际的用法?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
简单来将,就是为了将异步操作与非异步操作区分开来,并且action最主要就是用来进行异步操作的,让代码逻辑更清晰
在
vuex2中,actions并不一定要, 但是mutation是必须要的,state的值, 只能通过mutation来编辑你要不想把异步写到
actions里, 完全可以在组件里异步, 然后this.$store.commit('xx', yy)来调用mutationaction只不过是让你多一种选择,vuex 也必须要有一个支持异步的提交方式,要不然就不灵活了。action他是一个Promise,所以可以进行异步的链式写法, 这也就是他的好处了。
至于是在组件中等异步操作完成去commit,还是直接action去做,根据不同的业务场景有不同的选择,也有不同的好处体现出来。所以vuex只是为了更灵活使开发者多一个选择,让代码尽可能的变动优雅。
异步还不够吸引你么(惊
最后:vuex文档
action里面可以包含多个其它action并且可以执行一步操作这两个理由还不够吗?