|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
6 c0 v# o1 Y2 [- T - <p v-if="seen">现在你看到我了</p>: v) L8 S; E& \. @
- <template v-if="ok">
# m& W0 k4 k# m+ ^0 ]$ P% h - <h1>菜鸟教程</h1>. F3 q- S% y8 x& V3 T* a _0 x
- <p>学的不仅是技术,更是梦想!</p>$ _, O3 Z' \4 C/ T& Y- u9 y
- <p>哈哈哈,打字辛苦啊!!!</p>
' s! R5 v2 t- N - </template>( v, b. N7 C7 T: v, d, Q0 q$ ~
- </div>- ?0 Q& a0 ?8 `7 q6 w9 L
-
4 r: o* i* F" l! R& i x - <script>
w1 M9 J/ x* g( \' n) \' c9 Q8 c - new Vue({
]& u2 q* A9 J - el: '#app',) Y! u2 ~ ]# I3 T
- data: {
: [6 W- K! g7 v2 f- G" Q0 C$ T+ I - seen: true,
3 d" n* _; B% p& s1 ^7 e) h - ok: true! f0 d( ^* _1 ?4 [. h; h* l
- }
; W4 Q$ M' _7 N' ] - })
/ c9 q8 Z0 |; T7 [& y - </script>
复制代码
3 C0 ~' E9 ]1 n* B这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
. C8 a, ]+ V4 ~4 N* O; |5 l - {{#if ok}}+ E0 U! j; E7 @* x; l3 I
- <h1>Yes</h1>
- @1 l! w- N8 P; A* u - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
/ ~( ] [9 J- J7 }- <div id="app">
4 u0 s/ a. X; B- Q - <div v-if="Math.random() > 0.5">" J4 P3 w0 C y: Q; F
- Sorry% Z% f# K- \: Z- c/ v9 B
- </div>
( U! G) W/ D$ a3 n8 G' I2 m - <div v-else>9 r/ n+ {" {0 `5 h5 r
- Not sorry; s" d- p. |' V5 I. a
- </div>
9 @- K8 [. }3 K8 _ - </div>7 E# E& J# |8 ? _3 a
- 5 [0 K4 `6 |% s
- <script>
) ^) _% k1 u. R4 M! \1 {) n8 w: b - new Vue({( i( D4 j8 O" c6 Y: p- C
- el: '#app'% f9 c" D) E9 h9 V$ e
- }), E3 k% f4 ~0 b$ c
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
6 |1 q' j- N2 m- <div id="app">$ p/ l9 q) N4 H" c
- <div v-if="type === 'A'">
1 ]0 n& |: H+ |- z - A
1 `: {7 O1 H7 [' z, x8 S8 M - </div>
0 i8 n8 O+ c2 S8 l4 S - <div v-else-if="type === 'B'">' `$ i8 n$ v& @$ }2 c" v# g
- B4 S: z9 R. x: h0 w+ s' n
- </div>* `0 k# G1 h: A+ ~8 K0 L) A: ^: K
- <div v-else-if="type === 'C'">
$ {3 w+ o2 p5 l1 e0 S# `8 a - C
/ e: C- e S+ l4 X+ A$ q3 H - </div>
+ k1 _' t6 N" h( t7 [: b - <div v-else>1 m- a& b1 ^) m7 u! i5 R
- Not A/B/C
6 N5 [! b( @ w8 }0 l. I - </div>
6 w2 ?% a$ p! O& r1 W$ G) } s - </div>. T& H9 {" R/ v1 Z8 T
-
" w7 E7 ~1 A, N) v - <script>$ H# u4 u' d4 a- B. K* U
- new Vue({
3 F, {0 j# B" O - el: '#app',, W. _4 a* L1 }! A
- data: {
8 ~, |" ?. s2 J% V2 F' r - type: 'C'
3 T V0 F6 r/ H; J6 D# n/ V; m# z - }
1 n$ {+ O1 g2 V. Y- A" [6 ~/ ` - })& E9 M% Y; I3 O; U& n9 j2 N/ W# V1 v
- </script>
复制代码 8 |3 l% D/ H, P: {) g' E
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令# Z- M0 S$ p' k$ X
- <h1 v-show="ok">Hello!</h1>
复制代码
) }& {6 M% K% d, u2 y0 Y+ B }' @: E' `$ O1 ?7 ^; U# e' j
/ L. d+ s) B1 g( T2 z4 W
/ ^6 H2 `3 ]) [. E# a |