|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">: ~% o9 t- m1 }% Y+ x
- <p v-if="seen">现在你看到我了</p>" V$ }$ M' H& d2 b1 r6 W2 b$ n+ |4 @. c
- <template v-if="ok">2 q; C6 J+ H: b( `/ n
- <h1>菜鸟教程</h1>3 V6 C1 |2 L7 j0 B8 C' S
- <p>学的不仅是技术,更是梦想!</p>5 u, x/ s3 _2 v
- <p>哈哈哈,打字辛苦啊!!!</p>% o! _: b2 `, m% K4 ]# u
- </template>
0 F$ w: h; ~/ Z' V - </div>
7 B( i* \# f8 s4 s -
% p& K6 m" H+ ~& w5 [2 }* L# Z" o - <script>$ \, Q; F. s) V: s( ~6 R# b9 \
- new Vue({' ~( ?4 k5 D4 O/ B
- el: '#app',
2 |( ?+ h: U% g9 w - data: {
$ U/ \7 k2 A { L* X0 @: ] - seen: true,& n/ D5 Q$ e3 |; k+ }
- ok: true
0 Z7 r3 w. n; Z2 L6 ^4 f! s L" Y# @ - }
s+ @0 S$ V, \( ~ - })' o4 [( v' F( C- m+ }( Q5 b L
- </script>
复制代码 8 }. U& w% S2 O* }
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
! o: F9 K- R; \% ]+ _& q5 U' S - {{#if ok}}* _' w8 _1 o7 V4 B) e& z2 P! [6 A% g
- <h1>Yes</h1>
2 j k/ f% u; L8 y2 x4 k$ f - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
7 K* _# E2 u! j: K: e, q- <div id="app">7 f. ]- i6 S1 {4 b% b4 e
- <div v-if="Math.random() > 0.5">
4 q5 k$ k3 ]" p' { - Sorry7 S+ J+ G# q5 v, w, |8 H
- </div>4 h8 z3 v& Q8 a, v6 n$ U% S; U& r
- <div v-else>, q/ @* K/ P; a/ a: d5 p6 k
- Not sorry0 v% a8 M) T9 p; ^+ p
- </div>; ^+ i1 X/ r+ p* A. k, C7 L; h8 X
- </div>
$ r4 a6 t# o- d+ o) L& n" Y - 8 [! ]9 _3 `5 `7 H
- <script>" {% g1 d+ D( \6 R
- new Vue({+ `, [: q2 ^4 H9 V% m7 L, m5 j
- el: '#app'
8 G. [) `9 ^* ~2 V - })' k/ n* z q( o* x& N
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
8 x! R/ q. s* }: R- <div id="app">& [" Z, T& |. p5 Z z
- <div v-if="type === 'A'">
( b1 q! U0 m' R0 j( Y! K - A! J9 `9 t' K# H4 u3 z
- </div>
* i4 L q; C" v/ V$ r1 h - <div v-else-if="type === 'B'">, v$ z! ]$ n, Z
- B
. z% J% S$ e$ p; T& T; B$ J - </div>7 p( T5 E8 m( x2 O: P' M! B7 |# T- L
- <div v-else-if="type === 'C'">
4 @" o+ @. j0 a$ {) @ - C
4 K6 I+ z% p' d3 ^% M - </div>, r0 E7 V z5 u; L
- <div v-else>, a: Z7 u4 Q6 e0 w
- Not A/B/C- \& ]/ i$ Y- l5 F7 q5 @- W
- </div>% O( `. q" V& m0 |* A6 l3 L6 ~. l
- </div>2 b$ [% Z! b" `$ M
-
& f2 ]- }6 u0 Q! ] - <script>- X5 C( C W0 W, k
- new Vue({2 G9 v5 }( X. d% d( n9 h
- el: '#app',
" S! u+ L7 r M& n. ~; W - data: {
4 W& |" W/ K" v. o* L3 V. x: w - type: 'C'
$ X; H2 I8 x$ }" [& W - }
, T2 o& |. \8 f( j$ q - })4 C% ~' j4 I' V- u: [8 S# J5 [
- </script>
复制代码
# o( ^! t7 r. U4 Pv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令# x+ z5 F3 I+ f7 h( c3 T
- <h1 v-show="ok">Hello!</h1>
复制代码
7 E$ X8 \7 B4 Y) }0 Z* Y
0 t: w8 |5 q P( i3 n, Y2 k- f* J
4 i; g5 A+ q5 u, |9 m$ Z% C$ T$ w+ w9 a4 x9 B, p8 j" f
|