在 Vuex 中不使用动作来提交突变是不是很糟糕?
Is it bad to commit mutations without using actions in Vuex?
我使用 Vuex 有一段时间了,我一直遵循以下模式:组件使用 Actions 提交 Mutations 来改变 Store。考虑到文档中的这张图,我认为这是做事的正确方法:
我遇到了人们直接在组件中提交突变的代码,甚至没有创建除了触发突变之外没有其他目的的简单操作。我什至在 Vuex 文档中找到了几个这样的例子。
我认为既然在文档中使用了它,这一定是一个可以接受的模式,我想知道跳过 Actions 并直接触发 Mutations 是否是任何其他状态管理库(例如 Flux 的 Redux 本身)认可的模式。
TLDR:直接在 Vuex 中提交突变是否可以,如果可以,其他状态管理库(如 Redux)是否使用这样的模式?如果是,他们为什么不呢?
请记住,突变必须同步。如果您(和您的团队)确定不会出现异步的情况,您可以直接在组件中提交。换句话说,用简单直接的操作来使用。
通常只在操作中提交可以增加应用程序代码的清晰度和可靠性。
我没用过Redux,但据我所知,一些状态管理器有中间件。
使用突变和操作 (Vuex-way) 可能会导致大型应用程序难以维护。
在未来版本的 Vuex 中,mutations 和 actions 应该是 merged into the one entity.
我使用 Vuex 有一段时间了,我一直遵循以下模式:组件使用 Actions 提交 Mutations 来改变 Store。考虑到文档中的这张图,我认为这是做事的正确方法:
我遇到了人们直接在组件中提交突变的代码,甚至没有创建除了触发突变之外没有其他目的的简单操作。我什至在 Vuex 文档中找到了几个这样的例子。
我认为既然在文档中使用了它,这一定是一个可以接受的模式,我想知道跳过 Actions 并直接触发 Mutations 是否是任何其他状态管理库(例如 Flux 的 Redux 本身)认可的模式。
TLDR:直接在 Vuex 中提交突变是否可以,如果可以,其他状态管理库(如 Redux)是否使用这样的模式?如果是,他们为什么不呢?
请记住,突变必须同步。如果您(和您的团队)确定不会出现异步的情况,您可以直接在组件中提交。换句话说,用简单直接的操作来使用。
通常只在操作中提交可以增加应用程序代码的清晰度和可靠性。
我没用过Redux,但据我所知,一些状态管理器有中间件。 使用突变和操作 (Vuex-way) 可能会导致大型应用程序难以维护。
在未来版本的 Vuex 中,mutations 和 actions 应该是 merged into the one entity.