条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
7 |7 v6 a4 w: I/ F. m - <p v-if="seen">现在你看到我了</p>/ U2 C% i$ Q: a; f5 y
- <template v-if="ok">' r& O# p* V/ U: |, v$ \
- <h1>菜鸟教程</h1>/ [0 L$ _) U# V1 b; F; t. D
- <p>学的不仅是技术,更是梦想!</p>( c" G8 r$ L" H! o$ E8 W: I
- <p>哈哈哈,打字辛苦啊!!!</p>
, {; A7 z2 M* l- Y- [$ _6 T6 o6 I' F l - </template>5 n& D, x, o' _" K8 E4 E! T2 C# t
- </div>
7 u L e6 K) a( W7 F: D, @5 P - n8 t; ?6 n1 p$ Z }. C8 I7 x6 _
- <script>* V9 _7 `2 K2 w- U+ I
- new Vue({8 C: p0 V/ K& N* K* l
- el: '#app',8 [( w) U* M$ d
- data: {
9 e/ _ D" W$ }: ]% G - seen: true," g8 n# \1 j9 l7 f) u2 h5 k
- ok: true, }% ^: T2 N, z( I7 V7 {& t
- }
, q6 R# A# k+ i2 {3 J - })
, \ ] Z* h" G* O - </script>
复制代码
( E6 L/ B/ I- e这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
% E' C' _5 a- u1 ` - {{#if ok}}- s1 C- T# {, z/ Q
- <h1>Yes</h1>
, x$ u0 ~4 ^# ~$ _0 n; r+ N3 z - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: # d p* F; |3 ^% D
- <div id="app">
: u6 u3 }! m( o. ? - <div v-if="Math.random() > 0.5">
c( e. C% Q/ \) k* X, B$ W - Sorry
' l1 r( Z% G5 ?3 m, J - </div>
' y; O+ i) K, j C* i* q* c4 |/ G - <div v-else>
' J6 M# F9 E7 o* a% @/ @# o - Not sorry
/ ]4 x# _2 C" D; t - </div>
# M0 e* ?( L' m9 f+ ` - </div>
' H; {- D( W/ p - - [& M# w+ Y2 F7 B0 P1 e2 s4 d# z r
- <script> w! ]! K: o. j4 D$ A0 `- g) i7 k2 |
- new Vue({
0 F3 N h& v! ]9 E* h& ]) O" K- g - el: '#app'
" |9 V1 |$ l! I+ Z$ m9 y9 F - })
5 f2 c Q0 k3 u E0 ^% Z/ f0 Z - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
5 ?( h$ Z# P" |) y; X- <div id="app">' U" S c5 j/ P% Q+ {; \- o
- <div v-if="type === 'A'">
7 d# ^# X0 S. @* \4 g y6 c( d- V9 A - A; a2 x, ^% J7 k# ~( O) G
- </div>
. H& A7 Q) ?3 X$ R& C. ~. z0 b - <div v-else-if="type === 'B'">
' {: U0 W/ l1 B1 s0 h - B
: K0 C( D! S- h: S0 L, b - </div>3 `" z, ~" G L: r
- <div v-else-if="type === 'C'">
" I8 o1 @" x2 R! m - C: M' f& f9 @. k2 h
- </div>
+ w2 ?. s5 v1 i. ~ - <div v-else>
; L9 M' T+ `+ A* U6 d5 U) ~/ N9 t - Not A/B/C
* Z6 a* a0 R3 U' G - </div>
x7 D5 B6 N% `7 c5 G" ? - </div>
. N/ Y3 n$ `8 K$ I2 V7 y) e# V- f) S \ - . S# L% [2 `" d* F/ G; A
- <script>+ r3 d+ h- X1 |$ |$ \; [
- new Vue({: k$ d+ c1 K5 b% g- J/ ~" N
- el: '#app',
. ]# d- r. y. r- m3 e - data: {' H! ^# c5 ~, F% {1 F' S
- type: 'C' h7 ~3 U0 K' e0 C K4 e' F2 j9 x @' C
- }
; ]! m" k4 X+ A. F/ R* o& W$ O - })
. _% v6 q. g" p( u3 ~3 j2 i - </script>
复制代码 3 t: v5 e/ c. H6 T
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令8 {- f9 t& C/ j" L" V* p
- <h1 v-show="ok">Hello!</h1>
复制代码
* Q6 |7 o9 g1 I- O' _7 t; R1 y d/ |2 p+ T+ _, x1 p' b( D# k
( |8 W, [7 X1 Q4 o9 ~5 v. M
: z( J: O+ s6 j( r5 l: |
|