当面试官问你:v-if与v-show的区别时

145 阅读1分钟

背景:

前端面试中,vue技术栈的问题是非常常见的。而v-if和v-show因为作为vue常用的指令,在使用上有相似之处,又有不同之处,常常被用来作为面试的考题。接下来,让我分析一下面试中遇到该问题该如何解答。

回答思路

1.总分 2.结合实际运用

答案

:v-if与v-show都是动态显示元素或隐藏的。不同点1.原理不同 2.使用场景不同3.用法不同

1.原理不同:v-if是直接在DOM上创建或删除该元素,而v-show是利用CSS特性中的display:block和display:none进行元素的显示与隐藏。

2.使用场景不同: 如果元素的显示隐藏只操作一次,可以使用v-if。频繁操作建议用v-show。

3.用法不同:v-show一般是作为v-show:变量来使用,而v-if可以配合v-else来使用

实际运用

v-if在性能优化上不太友好,当 v-if="false" 时,内部组件是不会渲染的,所以在特定条 件才渲染部分组件(或内容)时,可以先将条件设置为 false,需要时(或异步,⽐如 $nextTick)再设置为 true,这样可以优先渲染重要的其它内容,合理利⽤,可以进⾏性能优化。