前端必备:vue中和性能有关的两个属性

1 篇文章 0 订阅

永远不要把 v-if  v-for 放在同一个DOM元素上(同一个标签上),如下面代码所示

// 错误示例

<li v-for = "item in items" v-if = "item.id ===3 "> //同时在<li>标签上使用两个指令

    {{ item.id }}

</li>

在这样的情况下,会大量浪费系统资源,严重时可造成系统运行不畅,甚至死机。
Vue.js中,v-for的优先级比v-if更高,这就造成了两者若是同时使用,v-for会首先循环,忽
略掉v-if的条件。若v-for的元素很多,即使只想展示一小部分数据,系统还是会把所有的数
据都渲染出来,之后再通过v-if的条件来决定是否要去掉这些DOM元素,十分消耗系统资源
所以正确的做法如下。 

// 正确示例

<ul v-if="items.length">  //在<ul>标签上使用v-if指令
    <li v-for="item in items"key="item.id">  //在<li>标签上使用v-for指令
        {{ item.id }}
    </1i>
</ul>

上述代码中,先在<ul>标签上判断items的长度。若是items的长度不大于1,则不会渲染里面的内容;若是items的长度大于或等于1,才会渲染里面的<li>标签。渲染的时候会根据v-for指令来循环,这也是符合Vue.js语法风格的一种写法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

PhoebeSky

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值