请看这个最小的例子:
<template>
<div>
{{ count }}
<button @click="click">Click</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
}
},
methods: {
click() {
this.count++
}
}
};
</script>
我有一个计数数据属性和一个可以增加计数的按钮。
现在,我想这样做有点不同(出于某种原因)
click() {
let count = this.count
count += 1
}
我想先将我的数据属性分配给我的局部变量,然后增加局部变量计数,并希望触发 Vue 的反应性。
我知道 Vue 使用Object.definePropertysetter 到 data 属性,我怎样才能克隆那些 setter?
是否有可能做到这一点?
更新
我想要做的是尝试简化下面的代码
<script>
export default {
data() {
return {
isALoading: false,
isBLoading: false
};
},
methods: {
hitAPI(type: "A" | "B") {
if (type === "A") {
this.isALoading = true;
fetch(someAPI)
.then(() => {
this.isALoading = false;
})
.catch(() => {
this.isALoading = false;
});
} else {
this.isBLoading = true;
fetch(someAPI)
.then(() => {
this.isBLoading = false;
})
.catch(() => {
this.isBLoading = false;
});
}
}
}
};
</script>
萧十郎
相关分类