是否有一种方法可以将通用的getter / setter函数传递给v-model,这样我就不必为在vue-class-component中传递的prop中的每个属性重复自己的工作?
设置checkA,设置checkB,设置checkC, 得到checkA,得到checkB,得到checkC
除了属性名称外,它们基本上是相同的
上下文代码:
<template>
<div>
<v-checkbox
v-model="checkA"
label="A"/>
<v-checkbox
v-model="checkB"
label="B"/>
<v-checkbox
v-model="checkB"
label="C"/>
</div>
</template>
<script>
interface Options {
A: boolean;
B: boolean;
C: boolean;
}
export default class FooClass extends FooClassComponent {
@Prop({type: Options, required: true})
private options!: Options
get checkA() {
return this.options.checkA;
}
set checkA(checkA: boolean) {
this.setOptions(
Object.assign(new Options(), this.options, {
checkA,
}),
);
}
get checkB() {
return this.options.checkB;
}
set checkB(checkB: boolean) {
this.setOptions(
Object.assign(new Options(), this.options, {
checkB,
}),
);
}
get checkC() {
return this.options.checkC;
}
set checkC(checkC: boolean) {
this.setOptions(
Object.assign(new Options(), this.options, {
checkC,
}),
);
}
}
</script>
我是否可以设置其他属性或更类似于vue的方式,使其定义如何生成类似于proxy的getter和setter?