关于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是否存在性能问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
更多
发布评论
评论(2)
杀鸡焉用宰牛刀?computed通常在项目里用来计算生成一有多个变量关联的值,例如联合查询的过滤条件
因为没有依赖,所以computed只是多了一次getter,这个对性能的影响基本为0,但不建议使用computed,因为他的功能性不是在这方面的,而且这中写法也不优雅。filter和methods两个可以看作一个东西,都可以