关于computed返回函数用来获取参数的问题,是否影响性能?

发布于 2022-09-13 00:31:43 字数 937 浏览 4 评论 0

其实知乎上也有过这个问题,不过没人讨论,想问问大佬们。
<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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沩ん囻菔务 2022-09-20 00:31:43

杀鸡焉用宰牛刀?computed通常在项目里用来计算生成一有多个变量关联的值,例如联合查询的过滤条件

走野 2022-09-20 00:31:43

因为没有依赖,所以computed只是多了一次getter,这个对性能的影响基本为0,但不建议使用computed,因为他的功能性不是在这方面的,而且这中写法也不优雅。filter和methods两个可以看作一个东西,都可以

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文