我正在构建一个使用 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 找到类似的东西,但没有运气。你能推荐一些最佳实践,或者为你做这件事的图书馆吗?
谢谢