|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">: \+ I3 ~. b& T/ i: k! q
- <p v-if="seen">现在你看到我了</p>/ H4 A& y. ?( F( r# ~& _5 c( J
- <template v-if="ok">
' o* B: I n. H$ O7 x3 g: M* i8 m - <h1>菜鸟教程</h1># P7 ] t% p0 w4 y
- <p>学的不仅是技术,更是梦想!</p>( l. x+ m6 K8 N% M$ g* o
- <p>哈哈哈,打字辛苦啊!!!</p>
$ H- @" k, \" K1 @ - </template>/ _! K- A; t" F. K E
- </div>
# \- E, x5 }8 w* a' H -
2 D3 U! j1 |: K5 d& m - <script>
7 \: s2 g$ o/ [: {4 `+ M - new Vue({
9 p- ` H e( t3 ~1 K! {" A" K& t - el: '#app',
3 f6 w3 d/ e0 J! s - data: {
' n: V- v8 v5 L1 u- {( O5 v" t - seen: true,8 S- y/ ?2 F0 _1 `/ e# w) A/ y O; u
- ok: true/ {/ \7 U5 G4 r) T
- }2 j2 Z! r% u! q7 P ]
- })
7 t- O- ?# d& t) I$ s1 y* E - </script>
复制代码 ! s8 y2 K8 Z6 Y1 Q, h
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->: |* Y. |& @) e: z7 x4 B
- {{#if ok}}8 D6 I* O/ i/ f' l3 P
- <h1>Yes</h1>2 @% A3 e8 l/ P. E: _
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: $ o* p! q0 [. f3 a) N0 A
- <div id="app">
! }) M; g' V+ |, s+ E" [4 A, c5 U - <div v-if="Math.random() > 0.5">
7 u1 u9 W! }; M$ }: \ - Sorry
* I ?4 S( o9 e/ n - </div>
/ z- [5 P0 a4 b. f1 F - <div v-else>
6 Y/ M2 ^1 U# \9 Y$ N. k/ Z - Not sorry# X1 y! n% J5 T' ?% a; P
- </div>3 V) m7 Z7 D0 |7 _" C
- </div>0 a* ^4 I3 v" e6 g# ?: E' Q
- 4 R2 z C# ]5 U$ I. E
- <script>, U7 C6 h5 C: x6 o7 D0 y
- new Vue({' k( L7 Y7 r5 X: p. q
- el: '#app' [% O' j" U7 ^9 W' @5 Y9 O2 y
- })/ g- R A& }; A+ j* w
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
" g. i8 G) H% s. ]! j* d, ~/ n- <div id="app">
) L2 n# x1 o6 n$ \6 B - <div v-if="type === 'A'">0 V7 {/ @ ?5 H) ]! v3 q9 i2 Y
- A6 U! v: H0 F* d6 P
- </div>
9 o. D( q2 U8 z! K9 B - <div v-else-if="type === 'B'">
+ A5 g% G8 q: C - B: d1 U4 }1 ?7 w! h% b I4 H6 Q
- </div>8 {9 g7 E3 A9 z' e6 M3 m
- <div v-else-if="type === 'C'">
" x. a! B; y% g0 ]% t2 x3 a2 Y' a - C- C+ F2 F# Q4 F+ G% O/ t) q3 h4 S
- </div>
3 ^2 i. R) K2 I( s) Y: \* F3 k - <div v-else>
. s; {- T4 K4 G2 b# m/ D, r+ J - Not A/B/C
8 Q9 f, `4 o+ S7 {4 G% ]4 k8 O - </div>
/ N0 u: h( z: g - </div>1 N {% D1 q& v6 \, _6 |
- ( G/ d# a6 K7 z. c6 m4 D
- <script>
# K4 g: D- {% m( Z - new Vue({
8 Q# {* Y- h$ ?9 } D- S6 ~ - el: '#app',+ r5 o8 J8 Q/ n! X
- data: { c+ T) g& f& w8 T
- type: 'C'
- B0 u6 F' _8 M& D& | `4 H$ O - }3 n7 u+ R6 `5 O: b% F
- }). b3 d! Q, Q( ~! \
- </script>
复制代码
7 H1 L* g5 e, h7 a8 o6 @v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令1 w9 T" I" i B0 V6 f$ |
- <h1 v-show="ok">Hello!</h1>
复制代码
) {( N! c4 v; `- u5 R, O+ i1 l8 A+ m8 [" g* b* o" Y/ G
; G2 B3 B4 m# m' Y/ q8 E
/ {: b: I% N' e0 t5 v% T( o* G/ f+ ~2 N |