|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
$ ?9 \# i& ]5 ~" s. u - <p v-if="seen">现在你看到我了</p> T1 e; m. \$ h- ~6 j
- <template v-if="ok">
: Y) f' E7 Z% A5 A1 ?- W9 `2 M - <h1>菜鸟教程</h1>
o& x- @# \" {$ L; s% f- T - <p>学的不仅是技术,更是梦想!</p>
% v* G8 w" K7 E% I+ b - <p>哈哈哈,打字辛苦啊!!!</p>
! P5 W$ l# W# l8 L - </template>
) n) M8 H+ l& f+ J - </div>$ H! P& t% ~' d( G) F
-
9 L# u6 i4 @: X6 F( |. U. m - <script>- \$ A; e) s/ ?0 C
- new Vue({
2 O0 A3 D* x, h- D' [ - el: '#app',8 Q/ K8 _: ~( d
- data: {
/ t* `, a+ j& Y5 F* w - seen: true,
) D$ Q ]. D3 S: y4 i% S - ok: true
. A! ?9 i1 ^6 H4 S6 I( x - }% x- A- ]2 ~3 C5 X& |' x
- })$ E2 l6 U% E( C6 N+ e1 D5 V4 N4 f
- </script>
复制代码
/ `" J2 z2 `) b; M这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->2 c$ n/ g* N8 }6 A9 c0 o
- {{#if ok}}: d) L# Z6 |" a& Z7 o( c4 p
- <h1>Yes</h1>
! X6 k4 u/ w; J% F* Q - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: ( |2 ^3 U2 A! @( J+ \$ O2 {2 B: w; `
- <div id="app">
) |0 c/ ] B$ x' ] - <div v-if="Math.random() > 0.5">& t5 R1 [& i. G* I- V! x/ z
- Sorry) Z1 o# \! g& S3 O0 |
- </div>% R" \: M: [6 T! F9 s
- <div v-else>
: V& b/ x# z- g; d7 k4 i - Not sorry
2 }9 m0 v. Q/ g& \( }% \6 M% d - </div>) W; \3 h4 o0 k5 s- e o; j- p/ B5 h
- </div>
6 t$ f' b' ^0 v6 m+ b -
' b4 N6 l$ ]( O v7 X) V, k c - <script>+ {" h3 r" e t
- new Vue({% Z" p; R' x1 {4 d5 @; \$ X
- el: '#app'
+ Z, W* s; D' D# J& O - })" `' {& C, T1 ~" @/ b+ \9 f0 d
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: / T1 i: `/ _3 F5 g; @
- <div id="app">
+ f: E5 b6 |, }# y* W - <div v-if="type === 'A'">
?5 d: u" ?. ?# Q3 p( } - A
6 r4 ^( [% z9 p+ o - </div>
: i; w% o$ { w" V - <div v-else-if="type === 'B'">& J* a A( W( }3 \; W5 P& @
- B8 R8 K$ ~& P" x
- </div>
@2 R% y2 m3 A# j. E - <div v-else-if="type === 'C'">" v3 U2 Z" B& _% X
- C
* h: R( \$ i! F" J - </div>
* L1 E4 b k: a& b7 k l! ` ? - <div v-else>' n! I+ K* N7 ~! ~* ~3 `
- Not A/B/C+ y6 O& [# Z" Y
- </div>' A* f/ w! O. h9 n \/ h
- </div>
- P1 {' i) y5 v0 D- X3 g9 r - 6 K+ p; K) Y% V1 f4 S
- <script>1 ~* z8 j) }) s
- new Vue({
( D+ _" D/ o$ i( q - el: '#app',( K! s- t. B5 @. y, s% Z4 u8 L0 z6 w% \* F
- data: {, G, `+ l7 }( {: \( K; [0 B3 f* B
- type: 'C'/ C/ i* z. K* z& D9 N
- }: l8 W4 V7 j; r6 p$ u
- })
, c) P( T. Y% p, { - </script>
复制代码 8 I" B' n8 R1 C$ }1 f
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令" G5 n1 H/ g: r/ d1 a! `
- <h1 v-show="ok">Hello!</h1>
复制代码 1 Z, H, W0 V7 ~) p% }$ R: J& T
+ g' q+ d7 u. E# a$ x6 ]
% d$ W" j) L, U( y& B/ Z& P
" @9 w4 M2 Z& K# Y |