javascript - 对于vuex中Actions的疑惑
ringa_lee
ringa_lee 2017-04-11 13:00:57
[JavaScript讨论组]

最近上手了vuex,其它几点都很好理解。
但是对于vuex中actions一直有不解。
竟然能在组件里用commit提交mutation,然后改变state的数据。为什么又要用actions去触发mutation,再去改变数据呢?那样不是更麻烦了吗?

想请教一下大家,actions与mutation区别,除了它可以异步操作之外。
还有什么更具体实际的好处?或者说更实际的用法?

先谢为敬!



首先谢谢大家的热心解答,所有回答的很好。

ringa_lee
ringa_lee

ringa_lee

全部回复(5)
PHP中文网

简单来将,就是为了将异步操作与非异步操作区分开来,并且action最主要就是用来进行异步操作的,让代码逻辑更清晰

大家讲道理

vuex2中, actions并不一定要, 但是mutation是必须要的, state的值, 只能通过mutation来编辑

你要不想把异步写到actions里, 完全可以在组件里异步, 然后this.$store.commit('xx', yy)来调用mutation

怪我咯

action只不过是让你多一种选择,vuex 也必须要有一个支持异步的提交方式,要不然就不灵活了。
action他是一个Promise,所以可以进行异步的链式写法, 这也就是他的好处了。

至于是在组件中等异步操作完成去commit,还是直接action去做,根据不同的业务场景有不同的选择,也有不同的好处体现出来。所以vuex只是为了更灵活使开发者多一个选择,让代码尽可能的变动优雅。

PHP中文网

异步还不够吸引你么(惊

Action 类似于 mutation,不同在于:

  • Action 提交的是 mutation,而不是直接变更状态。

  • Action 可以包含任意异步操作。

最后:vuex文档

巴扎黑

action里面可以包含多个其它action并且可以执行一步操作这两个理由还不够吗?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号