条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app"># U/ Z- r \4 e* q5 R) ?$ ]
- <p v-if="seen">现在你看到我了</p>
/ a9 m) `) Q3 Q2 T% ` - <template v-if="ok">
& b0 V7 O6 Y" v# i+ U3 a: R - <h1>菜鸟教程</h1>* w+ ~9 M# z; y, I" C
- <p>学的不仅是技术,更是梦想!</p>: D2 R5 J8 [/ Y% u% M3 K+ b. P0 m* X
- <p>哈哈哈,打字辛苦啊!!!</p>
5 @; O$ {/ Z% F: W) \7 ]( U - </template>
& s4 C1 d" ^' T2 A) J" F8 }: _ - </div>1 C6 @- k2 Q+ b9 G" ]
-
# X* P! H2 |2 J - <script>. K& x: V" V1 p5 C% ^
- new Vue({
( `( N; ?3 y+ o2 E q }6 G2 i- j - el: '#app',9 H: ~1 }7 J- _" Z- |+ A: Z5 u2 g
- data: {
1 D! Q+ H- C+ H7 t9 x - seen: true,
* {5 m9 C6 k$ x$ I7 H3 S. p - ok: true/ |# Z$ ?5 a6 f; B1 E5 q7 @( Y
- }8 U: q3 m4 O9 U
- })
, r* C) u3 E* F - </script>
复制代码 3 w5 N: l* R5 b
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
& b7 x; T o( [# v S; R' m6 ] - {{#if ok}}9 S( d" c6 T2 K( S+ B0 k8 d
- <h1>Yes</h1>
8 M& J9 v# W: z$ F) U0 ^ - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: . e0 J/ m& Y( _1 d
- <div id="app">: ]7 A! S/ _4 K G
- <div v-if="Math.random() > 0.5">/ a2 D7 o" D/ R' t. k% r: S
- Sorry* A8 ]' t" y( @
- </div>
" O1 \' O$ S1 E H- v# Q9 l - <div v-else>
) r+ H! y' f2 S2 u" H' V" S/ H; l - Not sorry4 X; @) b4 {0 Z0 j
- </div> A' p+ J( X* \, V8 M2 H6 U
- </div>
1 z) b# a' w( Y" U* H - 3 R# o3 G9 \& O, |7 ]& p0 Z
- <script>
: d& u# h) b' R" W2 t7 O - new Vue({
; m- H8 }5 x7 u4 L3 @' d - el: '#app'# n) j" ~/ s0 p) q, \; w% T4 w5 Z
- }); U+ b( k- z/ n
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 9 N5 w+ I4 ^, @/ x8 [
- <div id="app">- s `+ w5 L% H2 Y& \
- <div v-if="type === 'A'">
8 W$ t; O6 c5 R* l4 Q* c: A - A
5 Z j9 a) D! U! J - </div>- t4 F. A7 l2 s4 H
- <div v-else-if="type === 'B'">1 A' |* p( e, ^- F, V( n6 @
- B
7 L. H+ p% j. D" k - </div>/ {3 s8 A: {' V& z
- <div v-else-if="type === 'C'">! W" `/ a& _3 N: ^
- C) }3 N4 a7 E( V, B) X7 S7 w2 `
- </div>
! O# [0 S! p% N4 h2 b - <div v-else>
6 M- w7 ]1 X/ E; b3 A - Not A/B/C
1 @: z- y% k2 j# B9 ]8 k. d - </div>
: i, i0 @, |" T( ~3 Z5 n. t% ]; Y - </div>
4 y$ [/ B5 i/ I! [4 o& R - / J- y1 `% {9 \
- <script># u, T- R4 e- V, K: S4 o( F+ ~2 k
- new Vue({
2 N6 U8 V: _" z - el: '#app',
* E) R" h; C$ T7 I1 a7 H1 d - data: {
& ~* @/ [7 S% q1 D" I - type: 'C'
8 s$ F) S. T: y4 x! C4 q/ u. v. D. C - }6 I* D/ w& N) _, D; J3 M
- }) }* A1 v4 l2 [: I: C5 f
- </script>
复制代码
8 r5 }1 I5 e! g# c" mv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
" E0 C6 f4 U5 K6 L4 T1 E5 V. K( `- <h1 v-show="ok">Hello!</h1>
复制代码
3 m; y* x3 C- E( a7 \# i8 B- q6 v. ?8 W9 D
* m' e% i4 E2 B8 H) ^& ]
9 c; F8 i H8 ?0 \5 W ~- f |