我有一个循环,输出复选框:
<div v-for="(value, key) in optionsObject" :key="key">
在计算中,我检查prop options
是对象还是数组(如果我使数组成为数组值的键)...
computed: {
optionsObject() {
return _.isPlainObject(this.options) ? this.options : _.zipObject(this.options, this.options);
}
}
但是每次复选框更改时,它都会再次运行计算的optionsObject
。反正有什么可以防止的?
答案 0 :(得分:2)
这就是Vue中计算属性的工作方式。当它依赖的属性发生更改时刷新。对于性能而言,与method()相比,这是一个巨大的优势,如docs中所述:
我们可以定义与 方法。对于最终结果,这两种方法确实恰好是 相同。 但是,区别在于缓存了计算的属性 根据他们的反应性依赖性。计算属性只会 重新评估其反应性依赖项的某些变化时。