v-for 和 v-if 并用时筛选条件方法

<ul id="ul">
<li v-for="todo in todos" v-if="todo<4">
  {{ todo }}
</li>

</ul>

<script> 

varvm=new Vue({
el:"#ul",
data:{
  todos: [ 1, 2, 3, 4, 5 ]
}
})

</script>

说明:在处于同一节点的时候,v-for 优先级比 v-if 高。先运行v-for 的循环,然后在每一个v-for 的循环中,再进行 v-if 的条件对比。

v-if="todo<4" 会筛选 符合 <4 的 todo 项


而如果你的目的是有条件地跳过循环的执行,那么可以将 v-if 置于外层元素 (或 <template>)上。如: 

<ul id="ul" v-if="todos.length">
<li v-for="todo in todos">
  {{ todo }}
</li>
<p v-else>
no todo left!
</p>
</ul>


<script> 

varvm=new Vue({
el:"#ul",
data:{
  todos: [ 1, 2, 3, 4, 5 ]
     }
})

</script>

猜你喜欢

转载自blog.csdn.net/weixin_41796631/article/details/82926764