vue中的v-if语法和v-show语法


原文链接:这里

0.前言

前面文章中介绍了vue中的模板语法,这篇文章中介绍一下vue中的if的用法。

1.基础用法

基础用法代码如下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>vue测试</title> <script src="https://cdn.jsdelivr.net/npm/vue"></script> </head> <body> <!-- 制作一个容器 --> <div id="first"> <h2>Hello, {{name}}</h2> <h2>{{msg1}}</h2> <h2 v-if="flag">if为ture的时候显示</h2> <h2 v-if="!flag">iffalse的时候不显示</h2> <p v-if="flag">现在你看到我了</p> </div> <script type="text/javascript"> var app= new Vue({ el:'#first', data:{ name:"world", msg1:"3333333", flag:true } }) </script> </body> </html>

v-if判断的是data中的flag,如果是true则显示,否则不显示,同理,这个地方可以写取反操作。

v-if="!flag"

效果图如下:

可以看出,if语法可以删除dom节点。

2.if else的用法
<div id="first"> <h2 v-if="flag">if成立h2> <h2 v-else>else成立h2> div> <script type="text/javascript"> var app= new Vue({ el:'#first', data:{ flag:false } }) script>

效果图:

3.else if的用法
<div id="first"> <div v-if="flag=== '1'">11div> <div v-else-if="flag=== '2'">22div> <div v-else-if="flag=== '3'">33div> <div v-else="flag=== '4'">44div> div> <script type="text/javascript"> var app= new Vue({ el:'#first', data:{ flag:'3' } }) script>

上面的代码显示的就是33。

4.扩展

实际的用法可能更多些,比如用三目表达式等。

5.v-show的用法

v-show的用法和v-if一样,只不过v-if是删除了dom节点而v-show是隐藏了dom节点。看下面的代码和效果。

<html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>vue测试title> <script src="https://cdn.jsdelivr.net/npm/vue">script> head> <body> <div id="first"> <div>哈哈哈div> <div v-if="flag">11div> <div v-show="flag">22div> div> <script type="text/javascript"> var app= new Vue({ el:'#first', data:{ flag:false } }) script> body> html>

效果图如下:

vue