|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
- r8 B: Z* a% z# g) Y - <p v-if="seen">现在你看到我了</p>
) r8 g% k5 B- p0 l1 e+ X - <template v-if="ok"> Y! F6 K# w' e. C8 ~" d
- <h1>菜鸟教程</h1>8 `* u: x! i2 _2 }' U
- <p>学的不仅是技术,更是梦想!</p>
- \! ~6 \+ n* V3 a9 b0 M: ~ - <p>哈哈哈,打字辛苦啊!!!</p>3 m* `- G% ?+ l" @5 Z- s
- </template>, d% t( Z0 k3 c# O2 h) K% L: m8 T
- </div>" L3 ?" d, t, h- a, h! J4 }
- }" J0 u: }7 }' F% u
- <script>
- n& [5 V* v# i1 d - new Vue({* W* E8 l9 Q) L1 H6 H) a9 t
- el: '#app',
7 \: _6 |7 A4 B0 X) M - data: {
- X1 V/ N( A6 |# H - seen: true,
- C+ Q2 E5 z2 x, m: C$ s+ k - ok: true* |! Q7 {' y( {+ o* Q
- }
! K5 k0 C1 y# {5 `5 G - })5 c- o( s" z+ V) a
- </script>
复制代码
$ E- w( h7 S* Q这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->6 C0 p3 @" f/ R. d
- {{#if ok}}
4 p. z, f; I3 V - <h1>Yes</h1>: b& l) B1 W7 I. P2 {. a9 c
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
0 h- B. V/ s; X) y; ^- <div id="app">
- [) _+ y# ?+ L+ o0 B; m - <div v-if="Math.random() > 0.5">6 ]& r. |3 W& [1 P& y
- Sorry- ~8 m$ E J8 P7 l; o8 m, [
- </div>1 ?8 |% _' l" m$ j
- <div v-else># c0 @! @3 \/ y( b
- Not sorry
2 P( X, ]( D& y. i% q, N5 G - </div>& N4 c, t: G! U+ T
- </div>) y. m" E- H a
- 5 N6 ^4 h$ n: ~, W- |2 h4 P
- <script>; Q4 U# m | P5 h
- new Vue({7 l& H8 y9 K% y! n
- el: '#app'
+ H0 h/ J% b+ A% ^* J0 d - })2 J" L1 ?8 `- N( I5 j
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 6 Y7 E5 v7 I% q: m4 {8 v. b
- <div id="app">. E2 I8 Q/ q" C
- <div v-if="type === 'A'">, ]4 J! k9 a7 i$ l3 t1 n; ]9 A' ]
- A
& O R( k& b6 @. o - </div>
! h1 x0 [3 x: J. Z) F) h0 F - <div v-else-if="type === 'B'">, e( n; V% j7 [4 i3 O) }
- B$ c @- q6 E! x& L( I
- </div>
$ k% m) v; O4 ]* @# F - <div v-else-if="type === 'C'">
% w7 |& [! P7 `9 h - C
/ {. J) _3 v; b, a1 Z5 F8 R$ X - </div>5 v! c4 l, Y' e4 q3 W: j" h. F. u% B$ J
- <div v-else>& I' S, b( O, B; t
- Not A/B/C
+ x8 y6 {8 R+ q/ K6 n1 k - </div>! W* y% H% A7 u5 W, N3 ?7 \: x0 m
- </div>5 c! z% {% Y- k6 U
- " x V. h( n5 U: x
- <script>, F5 z- n2 X' a5 Y. T
- new Vue({: _6 s0 w! f8 g5 }& R5 a, y
- el: '#app',
8 E+ X2 w& r: S( H - data: {7 F* M1 b6 [; v1 D# v
- type: 'C'
+ h1 {2 X$ w, D& w; e7 n, L - }
* m, c7 v2 o0 B& ? - })4 X. n. v; ^0 y; `- o; }0 t' H
- </script>
复制代码
9 _% f) H( u9 M1 n& sv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令 y; D4 o0 y: Q0 w. g* z# d
- <h1 v-show="ok">Hello!</h1>
复制代码 % ?' R# J0 h( r; n/ j: V, z
; g! o' T$ Z6 j$ x8 U1 `- A
, ~; R7 m: Z! U1 f( J. ~1 b3 I5 K$ |: [) B" G
|