组件应该直接提交变异吗?

时间:2018-04-05 08:09:04

标签: vuejs2 vuex

Mutations章节中,您可以看到一个使用mapMutations将突变映射到组件方法的示例。

它也说

  

您可以使用此方法在组件中提交突变。$ store.commit('xxx')

所以问题是,在vuex中直接从组件(而不是通过动作)提交突变?

如果是,则此图表可能需要更新:

enter image description here

我应该继续使用mapMutations方法吗?

2 个答案:

答案 0 :(得分:3)

据我所知, actions 主要用于可能包含多个突变的异步操作。所以,是的,可以直接使用突变,这就是它们的用途。只有当您有更多涉及多个突变的复杂工作流时,才应将它们包装在一个动作中。

答案 1 :(得分:0)

MapMuation只是一个帮助器,它允许您使用定义的突变(在突变类型中)作为组件的方法。它与$store.commit完全相同,但更简单。

我不知道您的图表在哪个上下文中,但是可以从任何地方调用突变(组件,服务,操作,getter等等)en将通过同步更新商店来完成其工作。