zxdfe / FE-Interview

Every step counts
34 stars 1 forks source link

第35题:v-for 和 v-if 哪个优先级更高? #36

Open zxdfe opened 2 years ago

DengZhaoQuan commented 1 year ago

当 v-for 和 v-if 出现在同一级时

<ul v-if="todos.length">
  <li v-for="todo in todos">
    {{ todo }}
  </li>
</ul>
<!--
 1. 这会抛出一个错误,因为v-if先执行,属性 todo 此时还没有定义(v-for执行时才被定义)
-->
<li v-for="todo in todos" v-if="!todo.isComplete">
  {{ todo.name }}
</li>

<!--
 2. 解决方法:可以在外层使用 v-for , 这也更加明显易读
-->
<template v-for="todo in todos">
  <li v-if="!todo.isComplete">
    {{ todo.name }}
  </li>
</template>

强烈建议不要在同一级上使用 v-for 和 v-if

YangYi-Mo commented 1 year ago