v-for 和 v-if 优先级及如何优化

在Vue中,v-for通常优先于v-if执行,可能导致不必要的计算和渲染。为提高性能,应避免在同一个元素上同时使用v-if和v-for。推荐的做法是将v-if置于外层template,先进行条件判断,再进行v-for循环。或者,可以使用计算属性过滤数据,只渲染符合条件的项。这样可以显著减少DOM操作,提升应用性能。
摘要由CSDN通过智能技术生成

1 v-for 优先于v-if

2 如果同时出现,每次先执行循环再执行条件,浪费性能

3

 3-1 要避免这种情况,在外出嵌套template, 在template用if判断,然后在内部进行v-for循环。

      <template v-if=”flag”>

        <div v-for=”item in List”> {{item.name}}</div>

   </template>

3-2

<div v-for="item in filterArr" :key="item.id">

  {{ item.name }}

</div>

data(){

  return{

    arr:[

      {id:1,isShow:false},

      {id:2,isShow:true}

    ]

  }

},

computed:{

  filterArr(){

    return this.arr.filter(item=>{

      return item.isShow

    })

  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值