我是靠谱客的博主 羞涩外套,这篇文章主要介绍Vue.js 条件渲染 (v-if v-else v-else-if v-show)一. Vue条件渲染,现在分享给大家,希望可以做个参考。

一. Vue条件渲染

分享我的学习收获希望能够帮到大家

今天为大家分享关于Vue的条件渲染(v-if v-else v-else-if v-show)
下面我们来结合代码理解

复制代码
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
42
43
44
<!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>条件渲染</title> <script src="../Vue.js/vue.js"></script> </head> <body> <div id="root"> <!-- 使用v-show做条件渲染 a=false时h1不显示--> <h1 v-show="a===1">如果事与愿违,那一定另有安排--{{name}}</h1> <h2>当前的n值是:{{n}}</h2> <!-- 使用v-if做条件渲染 在使用时不允许被打断--> <h2 v-if='n === 1'>现在我等于1</h2> <h2 v-else-if='n === 2'>现在我等于2</h2> <h2 v-else-if='n === 3'>现在我等于3</h2> <!-- v-if v-else v-else-if 用法和if else else-if 用法一样 --> <h2 v-else>我不等于1,2,3</h2> <button @click='n++'>点我n+1</button> <div>@</div> <!-- template模板只能配合v-if使用 --> <template v-if='a===1'> <h1>你好</h1> <h2>可期</h2> </template> </div> <script> const vm = new Vue({ el:'#root', data:{ name:"某某", a:1, n:0 } }) </script> </body> </html>

1.如果我们想要控制内容是否显示我们就可以使用v-show

v-show=“a===1”>如果事与愿违,那一定另有安排–{{name}}

例如此处 v-show后面的 “表达式” 当表达式值为false时则不显示内容,或不符合表达式的条件,注:仅仅是内容不显示

2.下面我们来设置一个按钮,来控制当条件符合要求时可以显示内容,使用v-if

复制代码
1
2
3
4
5
6
<h2>当前的n值是:{{n}}</h2> <h2 v-if='n === 1'>老大</h2> <h2 v-if='n === 2'>老二</h2> <h2 v-if='n === 3'>老三</h2> <button @click='n++'>点我n+1</button>

这里我们点击按钮来使n的值增加,当n等于1时老大出现,
当n等于2时老二出现,当n等于3时老三出现

3.v-if v-else v-else-if 组合使用
在Vue中v-if v-else v-else-if 也可以组合使用,即原理和js中一样

复制代码
1
2
3
4
5
6
7
<h2>当前的n值是:{{n}}</h2> <h2 v-if='n === 1'>老大</h2> <h2 v-else-if='n === 2'>老二</h2> <h2 v-else-if='n === 3'>老三</h2> <h2 v-else>我不等于1,2,3</h2> <button @click='n++'>点我n+1</button>

同样当n的值分别等于1,2,3 时分别显示老大,老二,老三,当n的值都不等于1,2,3时则显示不等于1,2,3.
但是在此处需要注意的是使用v-if做条件渲染 在使用时不允许被打断

4.标签的使用
如果在代码中出现条件相同的语句,想要一次同时输出,那我们就可以使用。当然也可以使用v-show ,但使用v-show 就比较繁琐,需要每条语句都添加相同的条件,若单独使用v-if会将不展示的dom元素完全删除,那么就无法调用。然而就很好的解决的这个问题

复制代码
1
2
3
4
5
<template v-if='a===1'> <h1>你好</h1> <h2>可期</h2> </template>

这样我们只需要满足条件a=1,那么两个标签中的内容都会被dom捕捉,且当内容隐藏时,还可以在代码中调用。
注:template只能配合v-if使用

二.内容总结:

条件渲染:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1.v-if 写法: (1).v-if="表达式" (2).v-else-if="表达式" (3).v-else="表达式" 适用于:切换频率较低的场景 特点:不展示的dom元素直接删除 注意:v-if 可以和v-else-if,v-else 一起使用,但要求结构不能被打断 2.v-show 写法:v-show="表达式" 适用于:频率较高的切换 特点:不展示的dom元素被溢移除,仅仅是样式隐藏掉 3.备注: 使用v-if时,元素可能无法获取到,未使用v-show一定能获取到

最后

以上就是羞涩外套最近收集整理的关于Vue.js 条件渲染 (v-if v-else v-else-if v-show)一. Vue条件渲染的全部内容,更多相关Vue.js内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部