>首页> IT >

全球观速讯丨详解Vue条件渲染指令:v-if 和 v-show

时间:2022-08-10 17:05:36       来源:转载
在Vue中,我们可以使用v-ifv-show来控制元素或模板的渲染。而v-ifv-show也属于Vue的内部常用的指令。这里所说的指令就是directive,指特殊的带有前缀v-的命令,指令的值限定为绑定表达式,指令的职责是当表达式的值改变时把某些特殊的行为应用到DOM上。


(资料图片)

v-ifv-show两个指令就是大家常说的条件渲染指令。(学习视频分享:vue视频教程)

v-if : 条件分支指令


咱们先来看v-if指令。其作用就是根据表达式的值truefalse在DOM中生成或者移除一个元素(或多个元素)。有点类似JavaScript中的if条件判断。在Vue中除了v-if也有v-else-ifv-else之类。

v-if

前面说到过v-if根据表达式来的值来判断在DOM中生成元素。比如:

v-if的值为true时,显示这个div元素

// JavaScriptvar app = new Vue({ el: "#app", data: { }})

这个时候

元素插入到div#app元素中,并渲染出来:

在Vue中,如果你需要让某个元素是否渲染,那就在该元素上添加v-if指令,并且设置其值为truefalse。比如上面的示例,我们设置的是true,元素被渲染。如果把上面的true值换成false

元素就不会渲染。

除了直接给v-if设置truefalse之外,还可以通过表达式来做判断。比如:

v-if的值为true时,显示这个div元素

// JavaScript var app = new Vue({ el: "#app", data: { isShow: true }})

上面的示例中,声明了isShow的值为true,然后在h1元素中,通过v-if指令绑定isShow。其实类似于v-if="true"h1元素也正常渲染:

当你把isShow设置为false时,h1元素又不会渲染。

上面我们看到的是渲染一个元素,如果要渲染多个元素,那是不是直接里面嵌套多个元素呢?我们来验证一下自己的想法:

我是标题

我是段落

和我们想像的一样。但在Vue中,我们切换多个元素一般不这么使用,而是配合