v-if 的原理是根据判断条件来动态的进行增删DOM元素(条件为真,元素将会被渲染,条件为假,元素会被销毁)
v-show 是根据判断条件来动态的进行显示和隐藏元素 (DOM元素一直都在)
v-if 的切换有一个局部编译/卸载的过程,切换过程中会销毁和重建内部的事件监听和子组件
v-show 只是简单的 css 切换
v-if 有更高的切换消耗,v-show 有更高的初始渲染消耗
使用场景
如果频繁的切换,v-show 较好
如果运行时条件很少改变,使用 v-if 较好
v-if 可以搭配 template 使用,而 v-show 不行
v-if 有配套的 v-else-if 和 v-else,而 v-show 没有
项目程序比较大的时候,不推荐使用v-if来进行判断展示和隐藏,推荐使用v-show
只有v-if能和v-else连用进行分支判断,v-show是不能和v-else连用的,如果出现多种条件场景的情况下,可以使用v-if来进行判断