|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">. O# x7 m$ g$ o) |$ X( \1 r
- <p v-if="seen">现在你看到我了</p>: M* N% W0 Z3 e: s2 s5 @0 a; ?" `
- <template v-if="ok">
8 V( @& K5 k+ I& d! d3 a, V - <h1>菜鸟教程</h1>
5 q1 S+ |# O# V& r8 W2 n - <p>学的不仅是技术,更是梦想!</p>
a5 C9 Z8 \5 V/ v: u% d - <p>哈哈哈,打字辛苦啊!!!</p>
t4 j0 q: ?- P4 c1 k5 O - </template>$ `. a3 X8 _2 a' T9 n9 K
- </div>
3 p9 ?" N' [; V/ A+ Q4 W5 a$ | -
2 m8 u0 o6 D# u8 f" s - <script>0 r0 y/ n2 s7 ` K+ U; v+ W1 i; ^
- new Vue({
8 F/ a* t3 s1 @" g# j - el: '#app',& N/ s- o/ D' m9 J3 j( Z, W6 c
- data: {' y$ V# f0 T( P1 t5 w0 R5 X( G
- seen: true,
+ |: |& Q5 `/ L - ok: true7 w: [7 k6 n6 ^) }
- }
& i: W- q6 E: x( t - })
% z' Q/ g4 \( u# o - </script>
复制代码 # r% s. i% a2 Q- W) i
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->, d# P4 C% E- h
- {{#if ok}}# X6 {( ^6 q& |& k
- <h1>Yes</h1>. U3 d' j7 }9 q B7 h( C; m8 g
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: * |) a: q8 ?( S. j& i; H
- <div id="app">' B9 D# a) x; A5 w
- <div v-if="Math.random() > 0.5">* x1 p1 [0 g3 r/ p& `( w1 a4 n' a% m
- Sorry4 L- v" H( g3 y8 l+ h0 N9 I
- </div>8 m- g. h% S0 k7 N
- <div v-else>
" ], z) q, b& t( h* J; w: y# K - Not sorry
8 h3 O. u* Y7 Z L$ e& o0 z - </div>: W- Y: r* i! h$ d, D( c
- </div>4 ?1 W: e2 Z4 g" I! ]7 C& t% C5 P
- $ w6 Q- s6 `4 M! V) c5 m8 c
- <script>
: p4 C2 m3 R5 z - new Vue({
% _9 _7 q( `: J" [+ E - el: '#app'! Z: ^5 @ a4 d; z
- })7 q) y) |2 O5 u+ m4 f% U
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: % M! i6 P8 _3 X1 u- ~% w. K
- <div id="app">
6 w* M9 u+ Q7 N/ ] - <div v-if="type === 'A'"># k. v, h$ q5 r4 V0 n; k. t* y: d+ t
- A
7 u4 @; C+ q9 R1 x1 r* @1 w - </div>8 n8 `, z9 L; r3 b
- <div v-else-if="type === 'B'">% L) _; i) C, Y" A- W. O$ B
- B
9 ?- v% G; Y0 m& R/ y" U - </div>
1 j1 ~( C6 D* S9 A8 m, Y8 G - <div v-else-if="type === 'C'">7 y# ~. A4 j* F8 V
- C \6 N) V9 f( q- \2 K# T
- </div>9 Z6 [( H3 P% i* D5 C5 s
- <div v-else>
. J5 \4 ~1 |& G7 O - Not A/B/C$ J; Z( v& g3 D3 t D; u
- </div>* B: K/ \ c) ?6 G2 w6 h' g
- </div>% ~" p' W! D4 [8 P% E
- ; L8 O3 [! c& l G5 U
- <script>: j, I7 v9 H! x& E$ v. y* k
- new Vue({% L& Y1 _7 R8 w n% y" n2 |' H% z
- el: '#app',* S# P' G3 j+ Y/ ]7 l5 r
- data: {# O3 o; x) Z2 H3 a
- type: 'C'% @& j" ?' f/ U- b( [
- }; p; c- y8 P! P! {) }2 T" D
- })6 \3 Z ~5 B4 a
- </script>
复制代码 ' Q) |* h" V1 m
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令6 C1 P4 h+ a& P- c" M: ]3 P
- <h1 v-show="ok">Hello!</h1>
复制代码
; Q6 @% e3 }. K5 X1 U) \ a- j- n2 H/ E
% b5 N2 P) Q( P
7 s; ?7 y2 A7 V |