|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
2 P3 X! O% T4 Q: }, o - <p v-if="seen">现在你看到我了</p>
; T' N" ^0 D4 F/ s - <template v-if="ok">
% y6 T8 \: `/ N! Z* J - <h1>菜鸟教程</h1>
9 [/ w$ h9 i' e& P0 I1 E - <p>学的不仅是技术,更是梦想!</p>9 W8 z X8 i) V) ~5 m8 m: \
- <p>哈哈哈,打字辛苦啊!!!</p>8 J4 p9 s' C/ y3 E I8 N( @ _; Q
- </template>
* Z8 X% J0 @. B5 v6 {& X - </div>
: r: | M6 p6 S( h -
/ W$ Q- k+ z$ T5 y% M1 K - <script>
: S# x. i. O7 c3 l( g/ h# _8 N - new Vue({2 G$ o& h# u* U6 w( \1 K8 b C
- el: '#app',
' ~3 b+ D" Y' Q - data: {" c: A3 O. u" P+ d5 M
- seen: true,
, {, H7 p! {$ O/ O) X; E7 u* d& z- R - ok: true
5 W/ R* } V7 A" h" p - }
6 f) D! E$ E4 }' C - })
# H9 m- u+ M% D# ^, j4 r8 g - </script>
复制代码
1 J. S5 V8 A6 g, N这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
3 u C1 {1 H/ _* _/ q - {{#if ok}}8 {; K3 r3 B4 X/ Q- g2 j. o( G
- <h1>Yes</h1>/ u# U! Z/ M6 o4 t+ @# B3 Y
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: # F0 s, P, E4 c2 E4 ~
- <div id="app">: u1 R7 J9 ?" G, Q# l" \4 g
- <div v-if="Math.random() > 0.5">
6 [- T( _, Q4 [ r - Sorry
2 V: W2 a; C" |& h& l5 A0 B- | - </div>$ S0 I$ q4 D8 ^ {3 q# Q. b
- <div v-else># Y) [& x" _% d" X
- Not sorry
" M" D9 C2 _8 C/ [$ A& e6 j2 W4 ^ - </div>
! ]1 v( b3 ?; `* K: I4 ~ - </div>3 }0 ~1 V" J- }2 {) D' q
- 9 }% t: s6 S+ c1 I
- <script>2 s- A1 X: n% p
- new Vue({* ~9 ? q- v2 K
- el: '#app'1 P; _- v, V: Y3 ~+ N* V
- })7 Q3 i& n2 J: h' P2 P( T5 C) `
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: - a& F! |+ P1 U2 N3 b& e
- <div id="app">
! J: C/ p5 C% Y6 j2 V. V* o9 J7 l) v8 M* Q - <div v-if="type === 'A'">8 ^6 |9 m( u- v$ j
- A* s! X! r1 t: B! A/ N# X4 {$ M
- </div>
0 [- X4 a1 h9 O, }. M - <div v-else-if="type === 'B'">
5 `' S! e6 f2 \1 r - B
3 @5 r& \+ U- c3 M+ ^' a - </div> d: x: t2 H g9 u& _3 T0 e
- <div v-else-if="type === 'C'">$ ]3 g( w0 v8 E' R* `* d
- C& L# u8 z8 k; u) K; C
- </div>
- O, l. ^3 z& ?2 T( f; w: a - <div v-else>! E1 S* z4 ]% [, ~4 \- |
- Not A/B/C
5 H- f9 z- U1 Q+ ^9 a% j7 a; h+ J - </div>: z, Q: F! P% R2 Q
- </div>
* {8 O$ F2 c6 g+ Y+ `, g1 `) F -
8 t5 x% V$ O% |/ I& S - <script>
/ g" k7 Z5 | f* U - new Vue({; ~( @( k# T9 M' n2 y2 ]4 V
- el: '#app',
1 ~6 c: M5 H* ~: w& C7 c - data: {7 n3 c2 ? \4 [$ u1 M
- type: 'C'
1 E k' U- [- G a6 A" b - }
$ Z: ~8 Z" P: [) t - })
^3 Z7 p l& C$ z - </script>
复制代码
0 R7 M3 B* m+ r* f5 v8 r& x# @$ u( Bv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
2 Y8 O& A8 |" h' H: |: F- <h1 v-show="ok">Hello!</h1>
复制代码
0 C/ U( a3 U) Y* H; c' q0 |0 C" u3 s( R) r$ m& A" P
$ s; \1 y( F q
) b0 P+ @1 ]. Z |