|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
' u* w1 l3 S% m8 t - <p v-if="seen">现在你看到我了</p>
: I/ h1 d" B; o9 Q7 D - <template v-if="ok">
! r5 ~* M( p: D6 M7 C: A - <h1>菜鸟教程</h1>" _. Q; k* n5 V m5 G
- <p>学的不仅是技术,更是梦想!</p>, Q% s& P& l$ r" \# u8 \
- <p>哈哈哈,打字辛苦啊!!!</p>
: ]1 F+ }1 c4 E - </template> I: Q+ L5 E# D( ` B4 U: `8 x
- </div>4 A( `$ `1 v1 J9 ~) w
- , [( H1 [! J. Y$ r( B
- <script>/ F1 K5 w" }6 |& t! j6 o
- new Vue({
" M" O/ \ E& Z& X2 T - el: '#app',
& @: @- k% m8 ^7 s8 a( o! ~+ e - data: {
* j0 B* x$ Y) |& ` - seen: true,
( b' X: @1 A0 c: D# h - ok: true% [0 y$ l7 N* b6 F6 |& {) B' g5 i
- }
: u- O" v j0 e- c7 @6 N5 G - })
& Z6 b' H0 a3 z0 \2 D' d1 b# w/ @ - </script>
复制代码
" X4 r# ~; i8 }5 b4 t) c这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->) d5 a5 l- r* m/ Q& k
- {{#if ok}}
3 o y( c# ?0 e* g- r" ~6 f' q - <h1>Yes</h1>
# U$ G9 K2 q! e: ] - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
' r; `; E/ V) K3 r7 \, C( h- ]- <div id="app">
# X5 h& q, v9 K3 _: @6 e - <div v-if="Math.random() > 0.5">/ l+ b7 b% j7 s3 v, Z2 E. I
- Sorry) q. q1 i7 n9 R$ ^( z! G
- </div>
; L0 G- n$ E2 _ - <div v-else>/ |8 [& E5 }, }+ U Y
- Not sorry
+ S; T* H& a+ E- p& I; ~( q; y- H2 e - </div>
: ?5 z1 ^! J3 L - </div>8 Q2 V: t! C1 ^- `
-
# L9 t5 r3 r# [9 y2 f3 K - <script>
. M6 s/ j6 J$ ?8 | - new Vue({# l$ \( i$ l& k0 U" ?2 R4 V4 Z% d
- el: '#app'
1 U5 W; ] j7 e' d# m - }) Q7 a* F/ @/ z/ T: n* q9 ~. b2 \
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 8 Y1 o7 S' [- b
- <div id="app">/ n, B' r2 ?/ d( u
- <div v-if="type === 'A'">
3 k0 N* o# e$ I. b7 o - A
9 C4 N% c$ G# e5 R$ M& X - </div>% V) ]! {: b& y& C/ ~; g2 @/ P; n
- <div v-else-if="type === 'B'">
; T' D# e' ?1 H! P0 R( _1 Q5 t - B
; B5 V4 ~+ I0 @! O' f; U; ] - </div>" l# q+ {4 L+ I d$ P
- <div v-else-if="type === 'C'">
0 l" i. a$ F3 q& w$ ?) t9 O - C( n' p( A8 | c' }; W
- </div>
: _$ D/ }, P& A0 P' k9 | - <div v-else>; g' \$ e' [5 P
- Not A/B/C1 [9 V2 a0 @: k
- </div>6 M$ B% S( h+ U8 {& o
- </div># @+ |/ Z# t6 m6 W7 D7 |! T
- . L+ ^1 {( X/ Z
- <script> K+ X1 d. `1 \( F& a" Q
- new Vue({1 v" S$ C9 r l3 X3 T' I
- el: '#app',/ f5 s" Z3 J: ]' K3 Q9 v! d; e
- data: {
5 Z. E" d# i& V( G: D - type: 'C'3 o+ a3 _9 U0 k" g3 M1 a) G
- }! q2 c e8 ?$ H7 D/ L
- })' u% I2 @8 S9 Y/ M0 `
- </script>
复制代码 4 G" O+ m$ P8 y% ?' p6 N
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令! Z- e- t! k$ R4 v
- <h1 v-show="ok">Hello!</h1>
复制代码 2 f; d0 ^5 w% e% n4 N1 B
$ |! A/ a* W8 E6 w, {- y8 z
4 f* `( E1 U, {7 `! ~: q' ]- K2 T% H" s; x+ ]* g
|