1

我正在构建一个使用 API 的应用程序。我希望能够制作一个带有前缀操作和突变的模块构建器,以及用于异步操作的中间件,这样我就可以轻松地扩展应用程序。

我建立了一个原型,但感觉就像是一个草稿,我不确定它是否正确遵循通量模式。例如,我的动作类型不是大写

const defaultState = {
  [LOADING]: false,
  [DATA]: null,
  [ERRORS]: null,
};

const makeModule = moduleActions => ({
  namespaced: true,
  state: { ...defaultState },
  mutations: {
    fetch(state) {
      state[LOADING] = true;
      state[ERRORS] = null;
    },
    setData(state, data) {
      state[LOADING] = false;
      state[DATA] = data;
      state[ERRORS] = null;
    },
    setErrors(state, errors) {
      state[LOADING] = false;
      state[ERRORS] = errors;
    },
  },
  actions: moduleActions,
});

export {
  makeModule,
};

在我使用它构建我的商店之后:

const store = new Vuex.Store({
  modules: {
    [namespaces.cars]: makeModule({
      async getCars({ commit }) {
        commit('fetch');
      },
    }),
  },
});

对于 react/redux,我使用reduxsauce,这对我来说非常有用。

我厌倦了为 Vuex 找到类似的东西,但没有运气。你能推荐一些最佳实践,或者为你做这件事的图书馆吗?

谢谢

4

0 回答 0