|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">, i) q. _# c, X9 n, T$ b7 f
- <p v-if="seen">现在你看到我了</p>
' p. o$ z8 A+ K1 A - <template v-if="ok">7 x% \: x3 I! w9 ]. d0 x; E
- <h1>菜鸟教程</h1>
; o/ c* s0 f' `, Y9 w5 u6 B0 ]' D - <p>学的不仅是技术,更是梦想!</p>( i" ~( U6 t, _ ?, c
- <p>哈哈哈,打字辛苦啊!!!</p>9 [+ V. N! G5 P+ @8 q
- </template>
* \4 W' j$ f+ x3 U( ~ - </div>! z. h& T; @ K" z5 a
- ) o8 w4 }- p' _; A2 t" z6 W
- <script>5 W8 R0 n6 o/ G- [1 G
- new Vue({
+ E3 [6 p# X; y: i3 f2 L - el: '#app',
K' j& ]# I0 m6 g& v; H/ C( ~/ ~0 V; ` - data: {4 Q9 L6 H; k# _* j1 L# S
- seen: true,
$ y7 ^. w# @* s4 E& @% X f - ok: true5 |- c5 f# H7 M7 W' C
- }
+ m% c7 G y, Y- e, f8 w' H - })8 O1 V* q# N/ V
- </script>
复制代码 2 z3 E( m& t1 O4 U4 G
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->1 M& D' I5 P) j5 Z
- {{#if ok}}' P; G3 ~/ [; y0 g! X: W
- <h1>Yes</h1>
( k: c2 A5 z) v4 j! F - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: ; Z. [+ r9 Y+ D
- <div id="app">
8 K1 A& |4 C9 g7 F& S. N( Q, F" C - <div v-if="Math.random() > 0.5">
p: y- s4 R$ F% [! t - Sorry+ ?6 W# J% K3 ^, S. L6 C- P
- </div>
! m; V: D% e: J$ s$ \0 K2 v C - <div v-else>
; l# }8 P1 W$ J - Not sorry
& k. D/ F+ j4 I& ~ - </div>& o' A3 |, F) F& s, h' v/ R
- </div>
o; B+ S( W9 h! D - 9 g; j$ f; z3 V2 G0 {
- <script>2 k0 f. y- w0 E2 g* I! |2 B8 _
- new Vue({4 @; ~9 Y2 A9 ?3 H G6 ?5 |
- el: '#app'
+ P+ Q, E, u" m; f$ |+ E& r - }), o3 T: u1 G) W8 q
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 2 C# M! _6 I# @5 J, R0 U
- <div id="app">
) d) T- G2 T* }2 G' u, @- N - <div v-if="type === 'A'">
6 x* ]6 z8 [7 ^+ f2 v5 J! J+ M - A, s6 |# b* d2 o: O3 O
- </div>
9 M/ G" V' W$ ^6 B6 r - <div v-else-if="type === 'B'">+ i# h+ g0 R5 w- b! Z" }. N
- B
! d D- r6 a* \: \; p% W - </div>
7 C& i: [4 T k% m1 {) }/ p9 }4 I - <div v-else-if="type === 'C'">; c0 V6 k, i* a( h0 }
- C! s- Q: y2 q- A
- </div># L, w9 F. Z P% s% |
- <div v-else>4 n# W7 ^ a: D, Q
- Not A/B/C
" H9 [) y4 ^$ d0 c - </div>
, P& n9 j5 s7 v1 S& U6 d+ F6 P - </div>
* O! \5 z+ C. T8 x -
( V2 G0 l& M/ p - <script>7 K2 y) a$ l G. c9 r: n% t
- new Vue({
5 B/ Q& ]7 v# U! } - el: '#app', o6 g% W! y- V' l0 j+ y! Y, i
- data: {5 `4 x# g {1 I
- type: 'C'
& B1 H" Y4 U9 ^4 R - }
# U! x3 c/ G% @% I0 P - })
0 @$ b! y% m* h6 x1 m- _1 U0 M - </script>
复制代码
# o' W7 n# h" y8 rv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令% ?$ c s; y0 M X* e: X- U
- <h1 v-show="ok">Hello!</h1>
复制代码 4 f# ], @$ P3 C4 G( s
4 P3 H1 h8 F5 x$ Q2 d% a8 {( v& t% U9 G
6 A& J/ _$ e4 f* j
7 j" m" ?4 M) v0 ]3 ~ |