条件渲染
PPG007 ... 2021-12-25 About 1 min
# 条件渲染
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../js/vue.js"></script>
</head>
<body>
<div id="root">
<h2 v-show="flag">欢迎{{name}}</h2>
<h2 v-if="flag">欢迎{{name}}</h2>
<h2>当前n的值为:{{n}}</h2>
<button v-on:click='n++'>点我</button>
<div v-if="n===1">C</div>
<div v-else-if="n==2">C++</div>
<div v-else>JAVA</div>
<!--template只能使用v-if不能使用v-show,template不影响页面的结构,即template不会出现在渲染后的页面中而把内部元素直接暴露出来-->
<template v-if="n===3">
<h2>A</h2>
<h2>B</h2>
<h2>C</h2>
</template>
</div>
<script>
const vm=new Vue({
el:'#root',
data() {
return {
name:'PPG',
flag:true,
n:0
}
},
})
</script>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
v-if:
写法:
v-if='表达式'
。v-else-if='表达式'
。v-else
。
适用于切换频率较低的场景。
特点:不展示的 DOM 元素直接被移除。
注意
v-if
可以和 v-else-if
、v-else
组合使用,但是其中结构不能被打断。
v-show:
写法:
v-show='表达式'
。适用于切换频率较高的场景。
特点:不显示的 DOM 元素没有被移除,只是设置了
display: none
。
Tips
使用 v-if
时,元素可能无法获取到,但使用 v-show
一定可以