|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
* v! g2 J/ `, w+ e( Z$ m3 x - <p v-if="seen">现在你看到我了</p>
; ]9 J0 K& ]- Q k. }; R - <template v-if="ok">
' v& z6 y! e9 R - <h1>菜鸟教程</h1>
~! m& z z2 b- ` y - <p>学的不仅是技术,更是梦想!</p>( k- ]5 m0 E* ]7 S% H' d
- <p>哈哈哈,打字辛苦啊!!!</p>* m1 D8 ]- h! B( f0 x& r
- </template>
3 }; z+ P: a, O1 h& D4 q - </div>
( W+ Z0 u3 n* I; k+ }$ { -
' d! _$ m# z( c8 C9 S5 a - <script>
6 {& T' U3 e& ?0 L" @6 w - new Vue({1 @$ B3 }0 |# p( ~
- el: '#app',, \2 K6 X7 M# Y1 u8 e2 [. |
- data: {/ m4 q1 n* y: Z ?8 t
- seen: true,, }) Z" g$ I% n
- ok: true
9 K2 E# C! |& P- d O - }
) \# `* D( G( e( g% B" M* |2 K - })
6 C( _& H; v. b2 X8 m# Y! j- M, D - </script>
复制代码 6 \8 n: s! n6 y$ j% [( R
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->8 f5 g! q2 i4 M3 x
- {{#if ok}}! T2 x# v" k ^; d1 d7 x
- <h1>Yes</h1>
+ |5 J8 W# U/ z6 i6 A0 u" w - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
+ a7 ? n. v! q5 |3 B e) O- <div id="app">
" K% b' I$ o |4 {" Y - <div v-if="Math.random() > 0.5">" I' Y6 c/ o+ J9 G# d/ A
- Sorry# o6 ^& _4 h3 g# y0 ~* q" H
- </div>- U: o- B" M' I8 u+ k/ K
- <div v-else>- d) F! c, S% w) I
- Not sorry
8 p4 `. V6 W3 c% U4 a0 t - </div>* Q8 I) J" X P. Z6 q
- </div>2 A1 C( I; D% d
-
; I A4 Z, F0 ~3 b' r, d; u& w - <script>
$ p# D/ ]( k0 z# C' C - new Vue({. S2 B: s* A2 R' `" Y% G5 y9 U3 e m
- el: '#app'
, `2 v, |/ A" M: I* C$ R, C7 T - })- Q& z/ [6 H+ w! Y/ K
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
0 e+ j' ~0 o% K5 I- <div id="app">
( f7 F8 `( F: B3 Z7 Q0 o - <div v-if="type === 'A'">
5 w n E8 \8 R" q/ R) D! O; j) O: a - A2 k, D. I4 h/ e8 R
- </div>' n( v% U2 K3 R) w7 c, b
- <div v-else-if="type === 'B'">* d9 H! }8 ]8 t: A$ Z7 \& U
- B
5 q; ]1 A1 n- p5 B- s - </div>8 m4 Z) s9 q! ^- `) r V
- <div v-else-if="type === 'C'">5 G' z f# q& F+ M* Q( E
- C1 d* a7 A* z' V6 Q" F
- </div>5 Z5 ]6 z4 `# t. @ r3 b0 B
- <div v-else>
& j) N4 ?/ W l9 |7 p2 N. T - Not A/B/C
0 I. I6 _: Q& r - </div>
. O) d% [ h5 Y' h% h - </div>
9 P4 g- }3 F4 D5 L% T" l - . D( j2 V, I E" P
- <script>, R) c( t* j) w( S7 m" \' p
- new Vue({
4 r4 u* o. s1 b0 C6 z - el: '#app',
+ ~" H' l. i! T) O" r - data: {
: j) j2 T% e0 e1 G% ?8 h - type: 'C'
9 b7 i. k, Z0 x - }8 b( b/ p L; @8 [: [$ N5 d
- })6 [4 ?3 m# S% ]1 X: x) @$ H1 G2 p
- </script>
复制代码 % i/ r5 v) ?3 d7 D' i {$ c
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令; R6 w" X' ^8 }4 B) H' o P/ o3 }
- <h1 v-show="ok">Hello!</h1>
复制代码 / B. J b: y o5 A5 A/ @& q( k
( T. d5 z6 V9 ^. ^1 v8 V" k7 l8 l' d0 f- W" E4 x( d
' g& H, O, L, {- {: P) q- c6 k5 z
|