关于computed返回函数用来获取参数的问题,是否影响性能?
其实知乎上也有过这个问题,不过没人讨论,想问问大佬们。
<template>
<ul> <li
v-for="item in list"
:key="item.id"
:class="{active: getStatus(item) }"
></li>
</ul>
</template>
<script>
let that
export default {
data(){ that = this
return {
num: 2
}
},
computed: {
getStatus () {
return function (item) {
return item.num* this.num > 10;
}
}
},
methods: {
getStatus (item) {
reutrn item.num* this.num > 10;
}
},
filters: {
getStatus (item) {
reutrn item.num* that.num > 10;
}
}
}
</script>
类似这样一个循环n条数据,然后根据参数来改变return的值,并且也需要用到data的内容。那么这样来说,最先想到的filter还需要定义一个that来做data读取。然后就是computed和methods。这三种方法那种最推荐呢?computed是否存在性能问题。
回答:
杀鸡焉用宰牛刀?computed通常在项目里用来计算生成一有多个变量关联的值,例如联合查询的过滤条件
回答:
因为没有依赖,所以computed只是多了一次getter,这个对性能的影响基本为0,但不建议使用computed,因为他的功能性不是在这方面的,而且这中写法也不优雅。filter和methods两个可以看作一个东西,都可以
以上是 关于computed返回函数用来获取参数的问题,是否影响性能? 的全部内容, 来源链接: utcz.com/p/935677.html