我正在尝试使用 vuex-module-decorators 构建我的Vuex模块,但是正如我所看到的,我一直在重复相同的Actions / Mutations。 看起来像这样:
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中重用吗?