Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 在vue/vuex中,我应该将服务器REST逻辑放在哪里_Vue.js_Vuejs2_Vuex - Fatal编程技术网

Vue.js 在vue/vuex中,我应该将服务器REST逻辑放在哪里

Vue.js 在vue/vuex中,我应该将服务器REST逻辑放在哪里,vue.js,vuejs2,vuex,Vue.js,Vuejs2,Vuex,在Vue+Vuex应用程序中 我有一份物品清单。当我在客户机中创建一个新项目时,这个项目也应该在服务器上创建。服务器应提供新iem的ID 所以我们需要一次往返才能更新状态 现在,我是将此AJAX调用放在vuex的“操作”中还是放在vuex的“突变”中?这里有哪些最佳实践 在Vuex中,突变是同步事务,因此您需要使用操作执行任何异步工作(如AJAX调用)。我将添加另一个抽象级别: 您应该在另一个/其他文件中拆分api调用,并从存储操作中调用这些方法 //store action import *

在Vue+Vuex应用程序中

我有一份物品清单。当我在客户机中创建一个新项目时,这个项目也应该在服务器上创建。服务器应提供新iem的ID

所以我们需要一次往返才能更新状态


现在,我是将此AJAX调用放在vuex的“操作”中还是放在vuex的“突变”中?这里有哪些最佳实践

在Vuex中,突变是同步事务,因此您需要使用操作执行任何异步工作(如AJAX调用)。

我将添加另一个抽象级别:

您应该在另一个/其他文件中拆分api调用,并从存储操作中调用这些方法

//store action
import * as apiService from '../api'

export const someAction = ({ commit }) => {
 apiService.getXXX()
 .then( result => {
  commit(SOME_MUTATION, result)
 })
 .catch( error => {
  commit(SOME_ERROR_MUTATION, error)
 })
}