Vue的计算属性computed可以方便地从数据源派生出一些内容,它支持函数形式定义,而且可以接受参数。在computed方法内传参的方式有以下几种:
直接使用this访问Vue实例的data属性
computed方法内可以通过this访问Vue实例的data属性,因此可以直接传入某个属性的值作为参数,然后在计算属性中使用该参数。
<template>
<div>
<p>当前数值为:{{ num }}</p>
<p>求和:{{ sum(num) }}</p>
</div>
</template>
<script>
export default {
data() {
return {
num: 10,
anotherNum: 20
}
},
computed: {
sum() {
return num => num + this.anotherNum
}
}
}
</script>
在上面的例子中,sum方法传入一个参数num,然后通过箭头函数返回num加上Vue实例上的另一个属性anotherNum的值。
借助watch监听data属性
另一种方式是使用watch监听data属性的变化,在watch方法中实现计算逻辑。这种方式比较灵活,可以接受多个参数,但需要手动监听数据变化,可能会影响性能。
<template>
<div>
<p>当前数值为:{{ num }}</p>
<p>求和:{{ sum }}</p>
</div>
</template>
<script>
export default {
data() {
return {
num: 10,
anotherNum: 20
}
},
computed: {
sum() {
return this.num + this.anotherNum
}
},
watch: {
num(newValue) {
this.sum = newValue + this.anotherNum
},
anotherNum(newValue) {
this.sum = this.num + newValue
}
}
}
</script>
在上面的例子中,我们实现了一个求和功能,当num或anotherNum的值发生变化时,重新计算sum的值。
综上所述,computed方法内传参方式有多种,可以根据实际情况选择合适的方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue计算属性computed方法内传参方式 - Python技术站