时间:2021-02-14 11:31:41 | 栏目:vue | 点击:次
如下所示:
<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>