|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
: q- k9 g* g- T; h - <p v-if="seen">现在你看到我了</p>* ^6 l v( p8 t
- <template v-if="ok">
) T3 ?8 n0 K M: A, k* n5 I0 A b - <h1>菜鸟教程</h1>2 u5 D5 q K2 W
- <p>学的不仅是技术,更是梦想!</p> w1 Q% Y- T( {2 ] Q8 ^
- <p>哈哈哈,打字辛苦啊!!!</p>0 g6 V7 l- n% ^2 w
- </template>' F, D/ W! d4 e. Q4 C
- </div>/ @/ S5 Q$ [) l: U
- : w2 n' K% I1 B$ F7 C% Q2 B' j
- <script>
7 ?8 P5 K0 X8 \$ h$ v - new Vue({5 \3 D& Q* v q/ T0 L8 D7 o
- el: '#app',
6 D6 C6 y" H( u; \% {. [ - data: {2 o7 n8 u5 A5 z: R; W
- seen: true,+ q* p" u7 ]) _# f
- ok: true
, b1 B5 r, {! d6 G: I2 p* Y# ~$ q# F - }- w" u8 }7 ~ f; b' s& _1 U5 _
- })
. T. g# V* ?$ @: Q% e. U* P - </script>
复制代码
* X: i/ m4 C1 H3 x9 v这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->% M; x5 E! t3 f9 t9 M+ k- h7 C
- {{#if ok}}
, }$ T" \* w0 v& n; \' f. ` - <h1>Yes</h1>
2 c% b& Z3 s8 W! G0 @- e, r s - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: ; p+ k0 u* q2 Z) b# e% Q: g
- <div id="app">
3 M8 O1 F; M( f, b - <div v-if="Math.random() > 0.5">
, |# u& I, s4 `8 ?0 m: X+ | - Sorry
2 q1 s; I0 e% t, I0 y1 \- \ l3 f - </div>
3 n5 {7 V6 K) `/ C - <div v-else>1 `- M. o+ l4 {' d8 M
- Not sorry% B3 ^* U7 e/ g& c) w! E
- </div>
$ k( W4 D7 A: X% j0 Q2 v - </div>* j. b" v5 V2 `
- ; J) N9 C' b7 d; k7 c* J
- <script>, |) m0 e; j0 Q+ r
- new Vue({
, j* [3 H1 C& i0 H# `1 \& ? - el: '#app') x6 U) z" ~7 y* i _ @% v2 `% l9 n
- })
2 t) c1 A. W0 Y5 n8 `/ r - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: ; A2 J2 a- L) v T
- <div id="app">% f4 D6 H s( ?
- <div v-if="type === 'A'">( n, i: r+ S" j0 R3 Z7 R
- A% G! b6 t9 {( M6 s: l
- </div>, e K& k8 L! t2 G. ~
- <div v-else-if="type === 'B'">
6 V; l+ d5 _- Q' U - B
* @& t6 C, j6 g' B6 o - </div>
+ I( K% s: [/ j, r3 i* c - <div v-else-if="type === 'C'">& p6 p" c+ E: d; a
- C
# T/ s% p/ c- P# B; ` - </div>- x" e* g+ K$ T+ B& \+ a
- <div v-else>
+ O e/ `+ @( C' O, _ - Not A/B/C F* A7 U; ^9 s! G# Z; C2 g
- </div>1 B! p7 A; W! t& a! a1 f5 ?
- </div>
/ O5 C) _7 v& f6 Q% _ -
9 |2 w) d6 N7 `7 u - <script>
# N9 d& [9 }& M, v - new Vue({
& _/ P. G+ z! _4 l B% w9 s x - el: '#app',6 f3 i% I. x, {( {5 x
- data: {
* y, `* E" ^1 `0 q4 z - type: 'C'7 ~9 C* J6 T* J" v8 w! f0 L
- }: N7 `7 l. ~8 G- C5 G
- })( U+ s! W3 J" d- u8 R% ~
- </script>
复制代码
8 k+ x- T# w4 b% jv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令0 q: F8 i$ L1 ?/ ^! @
- <h1 v-show="ok">Hello!</h1>
复制代码 ' \5 |- L3 V0 |7 V
; c+ I* v) x6 f) h- f
( I, C0 E; T4 u- l) k& }. Q
& y' `. t& | z! o: {& Q) q( [ |