v-show和v-if有什么区别?使用场景分别是什么?

简介: v-show和v-if有什么区别?使用场景分别是什么?

一、v-show与v-if的共同点


在 vue 中 v-show 与 v-if 的作用效果是相同的(不含v-else),都能控制元素在页面是否显示,在用法上也是相同的

1. <Model v-show="isShow"/>
2. <Model v-if="isShow"/>
  • 当表达式为true的时候,都会占据页面的位置
  • 当表达式都为false时,都不会占据页面位置

二、v-show与v-if的区别


  • 控制手段不同
  • v-show隐藏则是为该元素添加css--display:none,dom元素依旧还在。
  • v-if显示隐藏是将dom元素整个添加或删除
  • 编译过程不同
  • v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;
  • v-show只是简单的基于css切换
  • 编译条件不同
  • v-if是真正的条件渲染,它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。只有渲染条件为假时,并不做操作,直到为真才渲染
  • v-show 由false变为true的时候不会触发组件的生命周期
  • v-if由false变为true的时候,触发组件的beforeCreate、create、beforeMount、mounted钩子,由true变为false的时候触发组件的beforeDestory、destoryed方法

性能消耗:

v-if有更高的切换消耗;

v-show有更高的初始渲染消耗;

三、v-show与v-if的使用场景


v-if 与 v-show 都能控制dom元素在页面的显示

v-if 相比 v-show 开销更大的(直接操作dom节点增加与删除)

如果需要非常频繁地切换,则使用 v-show 较好

如果在运行时条件很少改变,则使用 v-if 较好

参考

相关文章
|
5月前
分析它们的用法与区别
【8月更文挑战第31天】分析它们的用法与区别。
64 1
|
5月前
|
JavaScript 前端开发 Java
v-if和v-show的区别?使用场景?v-if状态改变调用钩子函数的示例
这篇文章详细阐述了Vue中`v-if`和`v-show`指令的共同点、区别、使用场景以及它们在组件和普通元素上附属时的不同表现,并通过示例展示了状态改变时对钩子函数调用的影响。
v-if和v-show的区别?使用场景?v-if状态改变调用钩子函数的示例
|
8月前
|
前端开发 JavaScript
v-if和v-show的区别
v-if和v-show的区别
46 0
|
缓存 JavaScript 算法
v-if和v-show的区别及源码分析
v-if和v-show的区别及源码分析
148 1
|
JavaScript 算法 前端开发
v-show和v-if有什么区别?使用场景分别是什么?
v-show和v-if有什么区别?使用场景分别是什么?
131 0
|
JavaScript
v-show和v-for区别
v-show和v-for区别
v-show和v-for区别
|
JavaScript 前端开发
v-show和v-if的区别(面试题)
v-show和v-if的区别(面试题)
65 0
|
JavaScript 前端开发
v-show和v-if区别
v-show和v-if区别
130 0
|
JavaScript 前端开发
v-if和v-show的区别?
v-if和v-show都是Vue.js框架中的指令,用于根据条件显示或隐藏DOM元素,但它们的实现方式不同,导致在使用时需要注意以下区别:

热门文章

最新文章