v-if是根据后面数据的真假,来判断DOM的添加删除等操作,是一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件。
v-show只是在修改元素的css样式(通过修改css属性display来控制显示与隐藏)不管初始条件是否为真,DOM都会被渲染。
即:
v-if和v-show都是用来控制元素的渲染
v-if判断是否加载,可以减轻服务器的压力,在需要时加载,会有更高的切换开销
v-show调整DOM元素的CSS的dispaly属性,可以使客户端操作更加流畅,但有更高的初始渲染开销
所以如果需要非常频繁地切换,则使用 v-show 较好,如果在运行时条件很少改变,则使用 v-if更适合。
(另外v-show不支持v-else和template元素)