v-for与v-if

当在项目中使用v-for循环列表时,需要对列表中的数据进行判断是否展示,但是在vue中v-for的优先级比v-if高,会有性能问题,此时可以使用computed计算属性解决问题。

<template>
  <div class="data-show">
    <ul>
      <li v-for="item in filterList" :key="item.id">{{item.name}}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      listData: [
        {
          name: '张三',
          age: 11,
          id: 1
        },
        {
          name: '李四',
          age: 19,
          id: 2
        },
        {
          name: '王五',
          age: 45,
          id: 3
        }
      ]
    }
  },
  computed: {
    filterList() {
      let list = this.listData.filter(item => item.age > 18)
      return list
    }
  }
}
</script>

posted @ 2021-05-31 14:47  zhongfang99  阅读(226)  评论(0编辑  收藏  举报