v-if和v-show的作用和区别

193 阅读1分钟

v-show简介

  • v-show的指令的作用是:根据切换元素的显示状态;
  • 原理是修改元素的display,实现显示隐藏;
  • 指令后面的内容,最终都会解析为布尔值;
  • 值为true元素显示,值为false元素隐藏

v-if和v-show的相同点

  • 都能控制元素在页面是否显示;
  • 用法也是相同的;
    • 当表达式是true,都会占据页面的位置;
    • 当表达式为false,都不会占据页面位置。

v-show和v-if的区别

  • 控制手段不同;
  • 编译过程不同;
  • 编译条件不同;
  • 控制手段:
    • v-show隐藏则是为该元素添加css-display:none;dom元素依旧在。
    • v-if显示隐藏则是将dom元素整个添加或删除;
    • v-show由false变为true时,不会触发组件的生命周期;
    • v-if由false变成true时,触发组件的beforeCreate、create、beforeMount、mounted钩子,由true变为false的时候触发组件beforeDestory、destoryed方法;

v-show和v-if的使用场景

v-if和v-show都能控制dom元素在页面的显示; v-if相比v-show开销更大; 如果需要非常频繁的切换,则使用v-show较好; 如果在运行时条件很少改变,则使用v-if较好;