v-show和v-if是Vue.js中用来控制元素显示与隐藏的指令。
v-show是通过CSS的display属性来控制元素的显示与隐藏。当条件为true时,元素会被显示;当条件为false时,元素会被隐藏。v-show在切换时仅仅是修改CSS的display属性,不会重新渲染DOM,所以切换比较快。
v-if是通过DOM的插入和移除来控制元素的显示与隐藏。当条件为true时,元素会被插入到DOM中;当条件为false时,元素会被从DOM中移除。v-if在切换时会重新渲染DOM,所以切换比较慢。
更通俗的说v-if的DOM只有在满足条件是才会被渲染,而v-show是DOM先被渲染了在满足条件时才会显示。
总结来说,v-show适合频繁切换的场景,因为切换比较快;而v-if适合条件不经常改变的场景,因为切换比较慢但是执行开销较小。