v-show与v-if有什么区别?

85 阅读1分钟

v-show与v-if有什么区别?

相同点

v-showv-if的作用效果相同,都能控制元素在页面中是否显示

<!--data数据-->
data() {
    return {
        flag:true
    }
}
<!--html-->
<p v-if='!flag'>v-if</p>
<p v-show='flag'>v-show</p>

当flag值为true时元素显示,当值为false则不显示在页面,上述例子仅显示文本v-show

不同点

虽然两者用法和功能都相同,但是控制手段和编译过程是不同的

  • v-show是将元素添加display:none属性,通过css来控制其显示与隐藏,只是简单的css切换
  • v-if是真正的条件渲染,暴力执法,直接将元素整个添加/删除
  • v-show初始渲染消耗高,v-if切换消耗高 综上所诉,如果有需求需要进行频繁切换,则使用v-show性能较好,否则使用v-if