|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">) p6 ~& H5 ]$ [. {4 ^
- <p v-if="seen">现在你看到我了</p>
- }8 @) l7 s: J+ X9 F% A - <template v-if="ok">
A: q# }4 q8 w/ @: X+ H; y - <h1>菜鸟教程</h1>; q: k$ s6 {+ o+ ?" V6 C
- <p>学的不仅是技术,更是梦想!</p>
' K8 g9 M- v2 i- H8 b3 {8 ]0 a. d - <p>哈哈哈,打字辛苦啊!!!</p>) _' K2 e7 M3 N) S" Y q0 z
- </template>9 j8 f" d; L" T! j
- </div>
5 O/ C3 E* a1 N9 M: o) {2 q -
3 W1 Y5 [# a; C5 u6 ^ - <script>
: V1 z( n* R# n, P1 J - new Vue({
" s6 |/ k3 `9 w# `; M. N! [9 L, Y - el: '#app',
2 D0 l3 s/ y. P - data: {& S1 g; M! _9 }- z0 @, t
- seen: true,
) R1 w X, ]9 Z9 b7 r5 H. { - ok: true
; |9 H- _7 V- A3 B0 y/ o+ V - }
8 ^+ d1 x* }! a* }- `5 ~) {! b9 k$ V - })
7 j- T! T( ^: K# Q" a! a+ k1 x - </script>
复制代码 ( K% J$ B" q7 j2 ?% g& K% y7 O
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
) F, k. ~& G3 T7 ~ - {{#if ok}}
. ~. ^. Q: J, P3 u - <h1>Yes</h1>
5 x! [, u1 j+ J( u8 z: a+ z - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 4 Y* D- x; f" L1 d( \1 \2 r5 p p
- <div id="app">9 ~$ {+ x% @: x i
- <div v-if="Math.random() > 0.5">+ E( C( C5 f. R. h
- Sorry! \; x) K9 C) ^5 b E2 f
- </div>
; m% K6 N3 X; d$ H' X& N - <div v-else>
% F: m3 D" k% M/ k - Not sorry
: {" l" @! y$ u |3 Y - </div>
( C6 y$ u7 Y5 P* S$ y - </div>
- g7 d1 M. L i0 d- E+ A% z -
( A1 X! M* f- C$ r4 o1 U+ p) i7 y - <script>4 H% x! ~4 R% D' Q, }/ J' A5 _
- new Vue({
2 v8 c, q8 L) q4 S! u& f9 u - el: '#app'/ {/ J5 M5 E1 `. N* p/ n
- })
7 X- L0 L( x! X; @ - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
5 ~& I5 b4 d0 O9 L- <div id="app">
2 A6 U) \2 e/ K2 i - <div v-if="type === 'A'">% `, H7 T) {" i p; J& N
- A* }. V( R5 F4 I) `. W, u3 k1 }
- </div>
, u; u" R. Z4 q/ E/ Z - <div v-else-if="type === 'B'">
1 l" R5 S0 J: ]; d$ k7 o5 q" `: O - B
( G7 r6 A- k5 I# H" t - </div>- o5 j4 O: {. W$ E: B
- <div v-else-if="type === 'C'">
: j! S* }9 F2 p1 M/ x8 z% K$ P - C9 p+ C# r7 G, R# k. ?$ g
- </div>/ c- O; @: E8 G1 b
- <div v-else>
; J8 g' D3 z8 g( J' ^/ u8 J0 u - Not A/B/C( k2 d) @& E; ^7 D1 g1 K/ T
- </div>
( r" g# @2 k( A - </div>0 r7 ^# h }" @9 x' [: P) {
- - ]9 B+ _: r6 {6 k# ~
- <script>
3 I! i+ Z% B) B1 v - new Vue({
0 _$ q Y; G0 |$ c# F4 G - el: '#app',. V5 [- m2 N2 Y4 B0 q8 D4 q) F( i
- data: {: s0 _0 C2 M2 [3 O, O" x& s
- type: 'C'
) j3 L1 B+ e0 n1 V( v% C2 o ~! ] - }
9 H; I, x+ s9 ^+ \7 @; e* K - })1 U- z+ f- W& \6 j
- </script>
复制代码
7 |# j# x$ a3 e8 d+ P4 G' n X3 n! Jv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
* Z8 f* S2 b a5 Q" B% J9 z- <h1 v-show="ok">Hello!</h1>
复制代码 , O/ h B* V9 [; l
5 e7 j& \8 W& f+ m0 S" v9 H. ?% h( Y' i; N* [, T
o. b z, n2 Y, D9 ?! d |