相同点:都能控制元素在页面的显示
不同点:
1.v-show是通过为元素添加 css 样式 display:none 隐藏元素,元素依旧还在;v-if显示隐藏是将元素整个添加或删除。
2.v-show由false 变为 true 时不会触发组件的生命周期;v-if 由false 变为true时,触发组件的 beforeCreate 、created、beforeMount、mounted,由true变为false时,触发组件的beforeDestory、destoryed。
3.性能消耗:v-if 有更高的切换消耗;v-show 有更高的初始渲染消耗。
使用场景
如果需要非常频繁地切换,则使用v-show 较好,例如:手风琴菜单,tab切换等。
如果在运行时条件很少改变,则使用v-if较好,例如:用户登录之后,根据他的权限不同来显示不同的内容。