Я пытаюсь структурировать свои модули Vuex, используя vuex-module-decorators , но, как я вижу, я повторяю одни и те же действия / мутации все время. Это выглядит так:
index.ts
Vue.use(Vuex);
export default new Vuex.Store({
state: {},
modules: {
moduleA: ModuleA,
moduleB: ModuleB
}
});
moduleA.ts
@Module({ name: "moduleA", namespaced: true })
export default class ModuleA extends VuexModule {
// States
public modulesA: any = [];
@Mutation
public LOAD_MODULEA(modulesA: any) {
this.modulesA = modulesA;
}
@Action
public async get() {
try {
const res = await api.get("myroute1");
this.context.commit("LOAD_MODULEA", res.data);
} catch (error) {
return
}
}
moduleB.ts
@Module({ name: "moduleB", namespaced: true })
export default class ModuleB extends VuexModule {
// States
public moduleB: any = [];
@Mutation
public LOAD_MODULEB(moduleB: any) {
this.moduleB = moduleB;
}
@Action
public async get() {
try {
const res = await api.get("myroute2");
this.context.commit("LOAD_MODULEB", res.data);
} catch (error) {
return
}
}
Можно создать один модуль, который создает универсальное Action (get ()), чтобы я мог повторно использовать его в ModuleA и ModuleB?