v-for和v-if不要一起使用的原因

探讨Vue中v-if与v-for指令的执行优先级及其对性能的影响,介绍如何使用计算属性优化列表渲染过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

v-for的优先级比v-if高

所以当:

<ul>

<li v-for="user in users" v-if="user.isActive">

{{user.id}}

</li>

</ul>

时,代码的执行顺序会是

this.users.map(function(user)){

    if(user.isActive){

        return user.id

    }

}

因此哪怕我们只渲染出一小部分用户的元素,也得在每次重渲染的时候遍历整个列表,不论活跃用户是否发生了变化。会影响性能

所以,我们可以把把上面的改为计算属性:

computed:{

    activeClass:function(){

        this.users.filter(function(user)){

            return user.isActive

        }

    }

}

<ul>


<li v-for="user in activeClass" :key="user.id">

{{user.id}}

</li>

</ul>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值