vue2-v-if和v-for的优先级

vue2-v-if和v-for的优先级

1.v-if和v-for的作用

  • v-if是条件渲染,只有条件表达式true的情况下,才会渲染
  • v-for是基于一个数组来渲染一个列表,在v-for的时候,保证给每个元素添加独一无二的key值,便于diff算法进行优化
<div v-if="ifShow"></div>
<p v-for="item in items" :key="item.id">{{item}}</p>

2. 优先级

  • 优先级是为了讨论先执行v-for还是先执行v-if
  • 那就有两种情况,v-if和v-for在同一个元素上和不同的元素上

2.1 同一个元素上的v-if和 v-for的优先级

<div v-if="isShow" v-for="item in items" :key="item.id">{{ item.name}}</div>
<script>
  const app=new Vue({
    el:'#app',
    data(){
        return{
            items:[
              {id:1,name:'tom'},
              {id:2,name:'tony'}
            ]
        }
    },
    computed:{
        ifShow(){
            return this.items && this.items.length>0
        }
    }
  })
</script>
  • 这种情况下v-for的优先级高于v-if,也就是先执行v-for,在执行v-if.这种情况下就会造成性能的浪费

2.1 不同标签上的v-if和v-for

<div v-if="ifShow">
  <p  v-for="item in items" :key="item.id">{{ item.name}}</p>
</div>
  • 这种情况下v-if优先级高于v-for

3. 总结

  • 在VUE2中,当v-if和v-for同时出现时,v-for的优先级更高
  • 所以最好不要同时出现
  • 但在VUE3中,当v-if和v-for同时出现时,v-if的优先级更高
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许先森森

爱我就打我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值