条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">$ L( q& m; _0 T: O9 \* L s! l7 I
- <p v-if="seen">现在你看到我了</p># l' v, w7 S: o. `
- <template v-if="ok">' p5 r" a: U" x8 \2 g( y
- <h1>菜鸟教程</h1>
4 G! d# g2 }2 v# P: @% a3 _ - <p>学的不仅是技术,更是梦想!</p>
' N9 L. j( x* m! j) E R - <p>哈哈哈,打字辛苦啊!!!</p>1 r6 \) V" c6 w! H: E) }
- </template>
% X% h! e, O, a5 Q5 r. x - </div>5 r; c5 P0 j) |( e$ ?( k# g
- ; @* |3 Y8 R6 B5 _
- <script>
9 @; a' S/ S" Q' V/ n. R' N - new Vue({
' H2 X6 w/ k3 T" e - el: '#app',
; _4 ]$ e7 ?1 S h; t( N& X2 }& j o - data: {! w- l2 I0 x# c6 y
- seen: true,
, Q5 @ \; N1 k - ok: true, i8 H7 g/ t% B: }9 g8 y
- }7 d0 F; K/ |# x- [
- })
, x5 g( M0 q- p6 Z# ~2 [8 h - </script>
复制代码 3 X+ `* H! L2 [' d) A% L E% X: D I
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->% c* q, s. Q7 t& n. f! @! s( Y+ j2 Z
- {{#if ok}}
! f. a" @) c6 q7 _6 K - <h1>Yes</h1>
9 Z5 u z: g4 R. `( j, ]/ D - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
/ E; l3 \2 \" i! y6 n0 C- <div id="app">9 u) R8 E2 J+ D8 ^
- <div v-if="Math.random() > 0.5">' R( k3 f2 |9 q f' P7 I) j3 K
- Sorry
9 A% Y" e! Z& L# q# U% O - </div>. i+ @# K8 u ^2 }
- <div v-else>
$ j7 N& h+ N# \ - Not sorry& ~( a) f7 z0 a" H" ~) E; d+ H
- </div>
8 i8 R6 ?4 d `- T+ K2 x9 w0 e |2 B* t - </div>, M! h4 y$ A D& F( B# V# n0 J
-
2 ]& `. U3 ~' W Q4 I6 c - <script>2 A6 t0 a7 o" t1 S. d* R9 r
- new Vue({3 k! O* N% a/ H2 O4 l0 q% H9 L! g
- el: '#app' A$ M, a8 T$ A* U! l
- })5 p9 h& w1 ?' |9 B
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
, |8 I" v6 u2 t6 P6 m. H- <div id="app">; U) {, C# X2 Z
- <div v-if="type === 'A'">
9 M9 I5 Z; J* ^# F ]1 ]5 T( J - A2 c2 f* Y2 A/ h) t% f3 z b
- </div>
- F Q( x3 n2 j - <div v-else-if="type === 'B'">
: Q8 n) C: x, g% p3 |9 T9 r - B
- l1 J0 e3 k2 ~" R# N6 Q - </div>
0 A b$ I/ Z$ F' e - <div v-else-if="type === 'C'">" j+ o0 V6 Z S) U4 d
- C
7 s5 @9 C: ~' B) h1 ?4 _ - </div>! V2 Y" K. i( e& `' F
- <div v-else>/ O' p+ g+ _0 g: W& G# V# b4 X9 R
- Not A/B/C% A$ s+ N. B( F- \4 r. ~: C! p
- </div>1 o! l. ]0 q. G
- </div>
; u) o& x' `3 K; o( P) M) V8 f# M0 t9 h - $ L9 @. C0 z; Y" L
- <script>
: W" I2 a' V) T7 l1 g( B% n - new Vue({! L4 t- O3 c% K- R" C0 `
- el: '#app',
* C' Z; E! y% y: M6 {( q - data: {
" `3 a3 D) m1 P' T - type: 'C'
' ~4 Y! {9 e! Y2 ~ v* R - }8 q( ^/ G: b$ x W
- })
v0 D& E- e( l& V7 F - </script>
复制代码
1 Z9 Y/ P8 s1 Zv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令( i* P$ _; H" X }
- <h1 v-show="ok">Hello!</h1>
复制代码 , l6 |1 v) h4 w4 z6 j" t9 r. I
, t( y+ L, H0 S$ ~
, `9 b; I! `( r, |2 i
. Z8 x0 q y$ f% D" G3 O$ _
|