Vuex: 从组件直接跳过操作并直接提交突变

13 浏览
0 Comments

Vuex: 从组件直接跳过操作并直接提交突变

在vue.js应用中,使用vuex作为状态管理存储,我需要简单地更改vuex中属性的值。为此,我可以遵循两种方法:

  1. 调用一个action方法,该方法将进一步提交mutation,最终更改状态。
  2. 第二种方法是直接从组件中提交mutation,然后mutation方法将更改状态。

目前,我正在使用第一种方法,如下所示:

在组件中:

this.$store.dispatch('updateNotice', '这是一条通知')

在Actions中:

updateNotice ({state, getters, commit}, payload) {
   commit('UPDATE_NOTICE', payload)
 }

在Mutations中:

UPDATE_NOTICE (state, payload) {
   state.notice = payload
}

正如你可能已经注意到的,我只是简单地使用action方法来提交一个单一的mutation,没有其他逻辑或异步功能。

我的问题是,在这种情况下,我是否不应该直接从组件中提交mutation?什么是最佳实践?因为在这种简单的情况下使用action方法似乎冗长且没有特定目的。

从组件中总是需要commit actions的原因是什么?

毕竟,在vuex中...mapMutations()有一些存在的原因。

0