为什么 v-if 和 v-for 不能在一起使用

发布时间:2024年01月04日

原因:

因为两者的优先级不一样,v-for 的优先级比 v-if 高,如果一起使用,每次渲染时都会先循环再进行条件判断,先循环再做判断会造成性能浪费,使用过程中不要把它们放在同一个元素上。

解决方法:

1.将v-if放在外层嵌套?template(页面渲染不生成dom节点),在这一层先进行?v-if?判断,然后在内部进行v-for循环。

<template v-if="isShow">
 
  <p v-for="item in list">
 
</template>

2.如果条件出现在循环内部,不得不放在一起时,可通过计算属性computed提前过滤掉那些不需要显示的项。

 computed: {
 
   items: function() {
 
     return this.list.filter(item => 筛选条件)
 
   }
 
 }

文章来源:https://blog.csdn.net/cdd9527/article/details/135387455
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。