2

我正在开发一个从后端获取机场的网络应用程序。我也在使用 Vuex 来共享状态和数据。我的问题是我应该在我的 VueX 操作中还是在我的 vue 实例方法中加载机场,然后调用仅调度事件的操作

例子

// ajax from vuex actions
export const loadAirports = ({dispatch})=>{
    //load data via vue-resource
    dispatch("SET_AIRPORTS",data);
}

或者

//action
export const setAirports(({dispatch},airports) =>{
   dispatch("SET_AIRPORTS",airports);
}

new Vue({
    ready(){
        //load data view-resource

        this.setAirports(data); 
    }
})
4

1 回答 1

4

突变应该始终是同步的。但是在动作中做你的ajax是很好的,事实上在许多官方示例中就是这样做的。我会做

import {loadAirports} from './actions.js'

new Vue({
  vuex:{
    actions: {
      loadAirports
    },
    getters: {
      airports: state => state.airports
    }
  },
  ready(){
    this.loadAirports();
  }
});
于 2016-08-18T04:19:27.027 回答