一、作用
1.1 v-if
v-if作用
v-if 指令用于条件地渲染一块内容。这块内容会在指令的表达式为 true 的时候被渲染
语法
<Modal v-if="true" />
1.2 v-for
v-for 指令 可以接收一个 数组 / 整数 / 对象 来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组或者对象,而 item 则是被迭代的数组元素的别名。
语法
<span v-for="(item, index) in ['one', 'two', 'three']">
{{ item + '-' + index }}
</span>
<br />
二、v-if 和 v-for 的优先级
v-for优先级比v-if高
三、问题的原因
因为 v-for 的优先级高于 v-if,如果两个一起使用的话,那么会先进行 v-for 循环渲染列表,然后再进行 v-if 判断,这样可能有的DOM节点就会被销毁,这样就会造成性能的浪费。
如果想要一起使用的话,可以在外层嵌套 template(页面渲染不生成template标签的dom节点),在这一层进行 v-if 判断,然后在内部进行 v-for 循环。
如下:
<template v-if="isShow">
<p v-for="item in items">
</template>