条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
$ S# _4 T9 W& G& h6 U" q8 Z - <p v-if="seen">现在你看到我了</p>/ y. J# V8 i3 B
- <template v-if="ok">. T0 y5 Q2 Q; o2 l! D, |( ^
- <h1>菜鸟教程</h1>$ l, ]4 L, H/ O7 I& I
- <p>学的不仅是技术,更是梦想!</p>
, g' m: q: v* h# G. ^: P - <p>哈哈哈,打字辛苦啊!!!</p>
) z& a1 j: M8 ?; k - </template>
0 O/ e6 i t5 D5 |: L - </div>
+ k5 O. _/ [( v% \& O p( T -
: a ?% L$ I9 N/ \/ _' C; W - <script>
1 R, E8 z) A# T* s8 T) y) ^ - new Vue({
/ N2 y) ~- L2 r8 X/ ^2 i& s - el: '#app',3 }/ f8 e) P7 P
- data: {
$ q" k/ j+ `" ?1 C# X) I - seen: true,. B& n, M( J2 c0 G0 Y
- ok: true
- L" r3 c, `, J, h, L - }4 D: _9 Q' e* Q
- })
, Q. c0 ~/ @5 n H8 ]/ f; n. ` - </script>
复制代码 & C$ q g# x3 F0 {! w6 a! x+ `
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->: z# l6 ^1 }: f8 {, q+ Z
- {{#if ok}}
( e5 X" H% y9 z) t: u - <h1>Yes</h1>
# `0 f. ^ f7 M& s - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: " Q% M1 [$ J2 x6 ~0 d; O
- <div id="app">% _1 e5 ~( v5 q! I# ?0 o
- <div v-if="Math.random() > 0.5">
# j+ I5 i, }8 Q% m' x) G& B; F* E - Sorry
; q) T& q' d: v. T$ T - </div>" D2 {9 M5 y; w
- <div v-else> L8 F; G# z$ e O, X: D
- Not sorry8 S! ~0 L+ @' B5 M4 T) k
- </div>
7 d9 @6 p; @8 z" g/ { - </div># Y1 p4 ]% O6 a8 E9 \
-
2 k+ Q" e. o& d; e; w - <script>8 q$ ?. |7 T- _' y+ Z. X
- new Vue({9 ^6 @# g: H$ u `& |$ ~0 L
- el: '#app'2 D7 s1 ^) \! [( p F& F1 p/ x
- })4 ^" h7 ^. e/ ^
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 6 _+ L8 S' Q) W3 X+ m2 c: h
- <div id="app">
- h' ]! h: U( B r; n f/ F - <div v-if="type === 'A'">* U4 Y1 }, O( \2 R
- A9 y0 S4 a a6 }. P: d9 U* F0 p( e
- </div>
. K- D% b( E9 J; u. {% {1 R- \ - <div v-else-if="type === 'B'">
) ]: l7 G% B! ~3 D - B1 v! p4 T! |% @& `6 ~3 O
- </div>, x* C$ L# u) N2 _0 h. r( E# `
- <div v-else-if="type === 'C'">
+ s" g/ A4 s" ~0 i& w% c" G - C
9 N& [% C4 f& @# _! z - </div>
. I# k9 A8 M, n( E K) q( K+ G4 y - <div v-else>
( P; m5 c9 r0 H: q' A - Not A/B/C3 T" G' `( Y+ W
- </div>
, ?/ Z* P9 X9 D" j - </div>
% ^$ S2 B% ]) u' g - 6 K0 `, r7 \& @( G. Z
- <script>/ ~+ a7 ?3 f. S- T% m! N
- new Vue({% d( N9 w$ L, h) m4 T s+ [
- el: '#app',6 y/ A+ u ?3 H/ y# O
- data: {
+ F( m) u. x. Q# X) p - type: 'C'
. l T# \0 W) ^0 L( b: G! A - }" O0 \& j5 J) n* ]# ]$ |7 ]9 N
- })# K. I: O& [1 s. y! y# x8 `
- </script>
复制代码 9 \) [+ B' ~" y+ e- s/ E0 @7 o0 C
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令# P2 H* z$ Y4 K9 E' v1 N
- <h1 v-show="ok">Hello!</h1>
复制代码
9 ~5 m2 {. a% T$ Z! o2 K$ T: M
- f' P; @ i3 Q5 z6 p6 R% c! g$ Q' z1 s
& g7 H0 Z- J, \+ |" a5 | |