|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">, q: N6 I2 I4 X6 Q: a5 }1 f6 m0 Q# A
- <p v-if="seen">现在你看到我了</p>
. ]* C- K' p( ?9 e! k4 @ - <template v-if="ok"># M0 C: B+ D) e: V: [
- <h1>菜鸟教程</h1>+ l$ k' O/ k% i/ v ~* U
- <p>学的不仅是技术,更是梦想!</p>( r% a" O( q6 L6 d3 p1 ~" j
- <p>哈哈哈,打字辛苦啊!!!</p>
3 B) `- X0 d a9 A' r - </template>' J7 }8 f3 c, |9 V8 G4 O9 i( W
- </div>8 J& T i$ B, E# ]& N1 G7 }
-
0 V( D. m0 V; h4 u: ^$ p9 `3 r - <script>0 M* f$ J# ~: f
- new Vue({
+ @" f5 p0 w9 o& C - el: '#app',$ ^" e- @9 |& ~/ c
- data: {$ z* d7 N4 F6 a4 Q5 ]: r! W. P
- seen: true,
7 T! l I) D5 \1 P- x5 x - ok: true9 t* L4 m* k \( U- J. f/ ~# A/ p7 }
- }: e8 Z7 o- F* q) ~9 X
- })2 n1 T6 e- x( c- @- W" ~
- </script>
复制代码
|! o X& C4 I1 |这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->$ t# ]9 J$ m! L+ e2 ^
- {{#if ok}}' ~0 o8 h* O$ B$ k9 h3 f
- <h1>Yes</h1>
. v! r& h' ?0 q5 t; T/ i" W5 B9 d - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: ' k9 r! J" j% T% @) I2 z0 M
- <div id="app">( S6 Q1 T5 x8 S9 Z" c0 r( U. ~
- <div v-if="Math.random() > 0.5">+ ^8 d! [6 {% L0 R8 W# Z& a" M- O2 \
- Sorry7 I& Q& Y) u; T9 B( F5 c
- </div>
- g! F0 W( ?& K( d( {" c8 | - <div v-else>
' b5 t a( K; v: l2 l2 b! I7 t1 [ - Not sorry
" T; p- n7 H$ _) c5 b) q - </div>
$ w+ L9 Y1 Z1 T) |, j3 `1 M - </div>
9 ^* g7 B; j! K7 W' U( I -
* q; U7 @: H( {" {5 w& ]4 } - <script>7 k- H, l' n& }: M% x
- new Vue({* C% H; }- z+ n/ S2 y
- el: '#app'
' n7 L* A# h# v& o9 m/ ] | - })! n9 ^9 m6 F$ ~% d. w# O4 q" @
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: . U* F8 Y8 n9 d/ l+ S
- <div id="app">0 C& [$ F' V( H/ W4 y2 ^& w) z! H
- <div v-if="type === 'A'">! Z4 x( b0 A. X7 b% z
- A
& a S$ L \; X- o# p2 Y - </div>: {$ \/ O" L0 T" L+ \5 v6 e
- <div v-else-if="type === 'B'">
4 M/ B$ \" l1 }) P9 c6 @ - B7 p) D1 b: w4 s+ t4 s I/ W# o
- </div>
, |9 Q( f8 W1 T - <div v-else-if="type === 'C'">
, Y+ w$ O; G7 Y; i) e' z' }4 I4 o - C
3 ]" y" {- M3 x4 B" H - </div>& w$ `" C, }( k, D
- <div v-else>
* b* I: d) ~0 P% v# \ - Not A/B/C5 p9 h% m% D# \9 E$ B- s: K& c
- </div>
% E3 S4 n K8 J3 d7 Y - </div>
9 l' _6 z- }8 ~3 ]: y! `* h/ s -
& S& `6 O# T5 ] - <script>/ j8 K* G7 `0 b5 r
- new Vue({
5 \4 N; l/ t% w# q2 w& [ - el: '#app',0 z1 p/ i+ ]2 |
- data: {; K4 T* |8 n7 B
- type: 'C'( i: T# e/ p0 s8 l
- }- u- W2 v, k/ a/ @4 g8 S. J" E. P
- })8 S# \1 G! {. k' T( Q
- </script>
复制代码
& N: y: ^# }8 v! j' A6 Av-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
5 e" B; h; Q9 X- <h1 v-show="ok">Hello!</h1>
复制代码
) v1 @' h h7 k- U! Q7 K
$ h% ^, K! g9 M4 M S+ ~0 {- w1 G( T' r, v$ s, P3 K
6 O' ]. j8 o0 B |