提到v-show第一反应应该就是v-if,不得不说这俩指令确实比较相像。

那么二者有什么区别呢?

我们首先来看一下v-show。

官方文档中对于v-show的解释为:

一个用于根据条件展示元素的选项,用法与v-if大致一样。

<h1 v-show="ok">Hello!</h1>

  当ok为true时,Hello!就会被渲染出来,反之当ok为false时,Hello!就不会被渲染出来。

我们首先来看一下当ok为true时渲染后的元素:

当ok为false时,我们来看一下页面是怎么渲染的:

我们可以看到元素已经渲染出来,只不过是将元素设置了display:none;将其进行了隐藏。

所以我们可以确定v-show的页面条件渲染只是改变了CSS属性。

 

当使用v-if进行条件渲染的时候:

把v-if设置为false之后,我们可以发现在控制台元素中根本找不到该DOM元素,元素已经被进行了销毁,而并非进行CSS隐藏。

官方对于二者的区别解释为:

只要掌握二者使用合适的时间,以及二者渲染的区别即可。

 

 

您的批评是对我最大的鼓励,欢迎指正。