|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">3 i* X$ r9 o/ a& M+ I- y
- <p v-if="seen">现在你看到我了</p>
0 T: m9 O, W) I' D) J" L H7 l - <template v-if="ok">
# @- G- j# m/ R$ c$ ? - <h1>菜鸟教程</h1>
4 y+ E8 t8 s1 F! {3 ~1 |: F; [ - <p>学的不仅是技术,更是梦想!</p>
# H& F. ^( B) ?4 j - <p>哈哈哈,打字辛苦啊!!!</p>
$ _* h* x3 B, W2 L& j% r - </template>
5 `2 g5 @: G4 @/ Q# @8 _ - </div>
8 {# |# n. V" s0 J, n* ], D4 U; o! m - 0 O7 Z0 D8 X. M
- <script>
; X2 T S/ {8 v4 N7 s9 q - new Vue({8 M' B% X# R5 _$ A1 S+ {
- el: '#app',
8 o) o: o# j( W3 N7 Z - data: {% y. K% @# \" F0 u: Z( c+ d
- seen: true,9 q0 x6 H- E9 W6 U& w; j/ L1 \; Z% z
- ok: true' s1 i$ N. r$ I. ~! u
- }" F5 i$ f2 ^, u, s$ e& w# Q
- })
- U# A) B4 h& X( N9 e - </script>
复制代码
7 L. m5 o" a1 a这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->: L0 w$ D, F$ u3 O
- {{#if ok}}
3 Q `, s. R" e) z2 [! X - <h1>Yes</h1>5 ^$ m7 b1 K v$ o
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
9 ?7 D. O( y3 T7 x/ l+ o- <div id="app">
% m5 M6 ^: x) W) m$ M- S - <div v-if="Math.random() > 0.5">% i/ _ }( ^. L; Q- A3 C
- Sorry# o" ?4 w& b1 e9 A' r: \
- </div>
3 O' |% B* a" C% q& M: N - <div v-else>
6 c8 n* E0 s9 U# M+ ~' @ - Not sorry
4 ^, S# J9 d0 w! h6 z' n8 Z - </div>$ I# X$ _, c3 t, G5 m
- </div>
+ k0 Q9 q# _1 ~5 H* p+ k% d - / J3 r; j) @+ E; L- ?% k
- <script># R& i$ X! n1 r) v4 z7 v
- new Vue({
m9 Q6 f$ a+ J, y6 U1 g - el: '#app'
+ c6 _. W9 s, X2 \ - }). }# Q7 H6 J( B) w( w
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: & R# Z3 @, V' B
- <div id="app">0 s$ Y- T) x$ j. g% N8 d
- <div v-if="type === 'A'">9 P) X8 Y/ r$ |* O* S; H# Y
- A
2 L: M; B' a8 h# e1 p4 { - </div>2 `, v+ `8 @$ K2 W
- <div v-else-if="type === 'B'">
+ i3 t: k1 V4 h9 j2 O8 F; N. M - B
, ^% M, c( R& {& R! F) K0 p - </div>
3 K* r$ J) q5 d% M - <div v-else-if="type === 'C'">
, S& ]7 c* j% i; ~/ o! t, C7 g+ c3 K - C" @3 m3 z c+ t& |" ~: I8 [% i" h
- </div>4 | w# ]/ ~5 D- M/ o* `# j
- <div v-else>
- m' t, B% F* C+ H" f7 D9 m! E5 t - Not A/B/C- y. H3 G$ l' y
- </div>- |7 q6 A# Z% O6 Y& ?8 ?
- </div>2 h+ x7 |, m( Q2 ]6 c. o
- 8 @- I9 m' T, }
- <script>
. P9 r1 f: e/ e& q N; ^* n - new Vue({
2 {! P# T i& w0 U x1 l - el: '#app',% J$ i% c' p, H6 |8 b
- data: {0 x7 C+ x6 r% \: o9 _- F- D
- type: 'C'
; X* S. O) H! V3 L/ g - }6 `, k' q& v; x. Z$ m# y
- })
. ^. h' f7 k& X" }& @8 N9 I - </script>
复制代码
% A4 P& e }& z- h+ O& f9 X3 Wv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令* y( p, `% u# k
- <h1 v-show="ok">Hello!</h1>
复制代码 8 N3 d4 P4 G* V
' @+ r% M* e/ t" ^, [/ [2 v
; f. u/ S' D4 S1 X2 Y" ~+ \( n- g1 [9 y& R( J
|