v-if和v-show区别
# 一、v-show和v-if是干什么?有什么区别?
1.1 v-show
显示和隐藏 : display:none进行隐藏 、display:block进行显示
1.2 v-if
创建和删除:remove、append
1.3 区别:
显示和隐藏用:v-show
创建和删除用:v-if
频繁切换用:v-show
不频繁切换用:v-if
v-if的切换效率比较低
v-show的效率比较高
v-if有一个局部编译/卸载的过程,切换这个过程中会适当的销毁和重建内部的事件监听和子组件
v-show只是简单的css切换
v-if才是真正的条件渲染,会触发声明周期
v-show从false变成true的时候不会触发组件的声明周期
首次加载:用v-if,不用v-show
为什么:
如果用v-if可以没有这个盒子,然后再通过v-if进行创建(但是第一次进入页面是没有这个盒子,是不加载的)。
如果用v-show这个盒子不管是显示还是隐藏,该盒子都是在的(节点都是存在)
1.4 使用场景:
v-show : 加入购物车、分享、蒙层这种都基本上用v-show
v-if : 首页栏目切换的时候v-if