先来说说v-if

v-if:根据表达式的值在DOM中生成或者移除一个元素,值是false就会在DOM中删除,反之会克隆相应元素到DOM中
支持加在<template>标签上

再说说v-show

v-show是根据表达式的值来显示或者隐藏元素,根据的是display的值
不支持加在<template>标签上

划重点

在切换v-if的时候,vue内部有一个局部编译/卸载的过程。因为v-if可能是数据绑定或者子组件。
v-if是真真正正的条件渲染;然而他是惰性的,在初始值是false的时候,他就什么都不足,在为真的时候才会开始局部变异
相比之下v-show则是更简单一下,仅仅是css上的切换
所以,v-if有更高的切换消耗,而v-show有更高的初始渲染消耗;因此,如果是频繁切换,就用v-show;在条件很难改变,比如某个模块在用户a出显示,就用v-if

Logo

前往低代码交流专区

更多推荐