v-if
指令用于条件性地渲染一块内容。内容只会在指令的表达式为真时被渲染。 后面可以跟v-else / v-else-if
例:
<div v-if="type===1">111</div>
<div v-else-if="type===2">222</div>
<div v-else>未知</div>
v-if 可作用于template元素上
<template v-if="1">
<p>哈喽a<p>
<p>哈喽b<p>
<p>哈喽c<p>
</template>
v-show
还可以用来按条件显示一个元素的指令是 v-show 。其用法基本一样:
<h1 v-show="1">哈喽</h1>
v-if 与 v-show
v-if 是“真实的”按条件渲染,因为它确保了在切换时,条件区块内的事件监听器和子组件都会被销毁和重建。
v-if也是惰性的:初次渲染条件为false时,不会做任何事。条件区块只有当条件首次变为true时才被渲染。
相比之下,v-show简单许多,元素无论初始条件如何,始终会被渲染,只有个css display属性变化时,才会被切换。
相比之下,v-if有更高的切换开销, v-show有更高的初始渲染开销。 因此,需要频繁切换,使用v-show较好;如果在运行时绑定条件很少改变,使用v-if 比较合适。
摘自vue中条件渲染,具体详情看vue文档:cn.vuejs.org/guide/essen…