关于vuex的疑惑

我看了这篇文章:https://segmentfault.com/a/11...
里面提到的:

用户在组件中的输入操作触发 action 调用;
Actions 通过分发 mutations 来修改 store 实例的状态;
Store 实例的状态变化反过来又通过 getters 被组件获知。

结合他的图,我的理解是组件内不应该去访问mutations。一切更新都要通过actions。
请问我的理解是否正确?

(但是我看官方文档并没有这么说,只是说mutations是同步的,actions是异步的,状态的更新只要通过getter处理。)

感谢您的关注!

阅读 2.4k
3 个回答

我的理解是组件内不应该去访问mutations。一切更新都要通过actions。

这个随人,不是定死的。这只是一个约定,你这么做没有错,直接调用mutations也没有错。vuex能直接把mutations绑定到vue实例上,肯定就是允许你这么做的。

mutations和actions的关系可以看看原作者的说法。
https://www.zhihu.com/questio...

actions用来处理异步请求,比如ajax。mutations接收你的function来修改state里面的值。
但是最关键的都是需要commit来提交。这样每次对vuex的操作都能被记录下来

只是说mutations是同步的,actions是异步的

就是这样而已, action最后也是通过commit一个mutation来变更state的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏