记录1: vue中v-if 与v-show

110 阅读1分钟

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…