相同点:
二者都是根据表达式的布尔值(true/false)进行判断是否渲染该元素;
语法上也相同;
<div v-if="age<12"> 未成年</div>
<div v-show="age<12"> 未成年</div>
当表达式为true
的时候,都会占据页面的位置,当表达式都为false
时,都不会占据页面位置。
不同点:
v-if:如果条件不成立,则不创建或删除已创建元素,初始化它的性能更高一些,如果频繁切换则性能低一些,权限显示相关,建议用v-if;
v-show:如果条件不成立,通过样式来隐藏,初始化它的性能低一些,如果频繁切换则性能更好一些。