多个Vuex过滤的api调用

时间:2019-05-12 15:45:07

标签: vue.js axios vuex

我想在页面上使用vuex执行多个API调用。 这些调用使用相同的端点,但是使用API​​参数来过滤结果。 目的是在两个不同的列表中显示城市和国家。

const GET_DESTINATIONS = createAsyncMutation('GET_DESTINATIONS');

const mutations = {
  [GET_DESTINATIONS.SUCCESS](state, info) {
    state[GET_DESTINATIONS.loadingKey] = false;
    state.list = info;
  },

  [GET_DESTINATIONS.PENDING](state) {
    Vue.set(state, GET_DESTINATIONS.loadingKey, true);
  },
};

const actions = {
  getDestinations({ commit }, { type = 'COUNTRY' }) {
    doAsync(this.$axios.get, commit, {
      url: `/v1/destinations/?area_type=${type}`,
      mutationTypes: GET_DESTINATIONS,
    });
  },
};

const state = () => ({
  list: [],
});

问题是,如果我使用不同的过滤器执行两个API调用,结果将存储在商店的同一变量中...

如何在不重复逻辑的情况下处理这种情况?

使用vuex管理API调用真的是一个好主意吗?

先谢谢您

0 个答案:

没有答案