|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
; Y% M$ I2 D" o& |. H- C3 W - <p v-if="seen">现在你看到我了</p>+ {( r* L* m5 S7 V
- <template v-if="ok">" W" U5 p/ w5 v
- <h1>菜鸟教程</h1>
' |% m7 o. W5 n$ l7 [6 c - <p>学的不仅是技术,更是梦想!</p>. f' b* T1 l5 M# ?/ o
- <p>哈哈哈,打字辛苦啊!!!</p>/ E" M3 i% p' Z
- </template>
! \0 q; u6 D) j% u7 }$ E - </div>
. f+ |4 [" i" v- V! R5 p - & t! A$ l. T1 ~5 o# a
- <script>
. A# w: ^; H d - new Vue({
' s x* ? t+ g6 r; N$ A) O - el: '#app',$ U" C+ E# F" u \
- data: {
2 D3 F( c: k" j/ o1 D! B$ v - seen: true,7 X F2 ]4 F! z, P' n
- ok: true( X+ k: m4 `) r$ j! x; W4 w
- }& I. F6 }2 W5 H1 p* o: o0 G
- }): k# e: R |% Q7 @. t& A
- </script>
复制代码 ( s5 [5 `+ ^7 J& u7 [( `/ m
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->1 `4 u; x( R E
- {{#if ok}}
0 L+ Q7 M6 p; y1 u - <h1>Yes</h1>
9 q* g6 R2 d0 ]4 L" C - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
. ^; G- {5 T# B2 X* L1 ^* N* }- f" V- <div id="app">( ~6 X) y( r0 s. ]
- <div v-if="Math.random() > 0.5">
! R1 J. `" H5 j3 F% g, T ~ - Sorry; x. O6 K$ @1 R! c9 z# i( y
- </div>
4 y$ y" M' W, U9 G6 Z$ @/ O - <div v-else>
S2 T( `, U8 x& t, h/ W) @2 t - Not sorry
+ G m* @9 \: L9 c - </div> |% i7 {/ m' U0 K- Q9 x) M$ b
- </div>
3 D' A" J4 G: n" c: a9 E( ^ - # y$ Z4 i! `/ l& j* f
- <script>
0 o! M+ v& e T- k* G - new Vue({" n/ b# f" A W& @' z- u
- el: '#app'. K: u0 [: }8 {/ X
- }) Y/ M9 Y- \6 Z k! K0 l
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
6 b! S8 D+ i6 l3 L( ^3 Q4 P- <div id="app">2 J4 X6 T1 C9 w3 ~$ C% k ]
- <div v-if="type === 'A'">) t5 d/ y2 I# v8 {; \
- A
# z* j L3 g! V5 o2 D0 ` - </div>4 G# I3 q2 e3 M% k8 U- b
- <div v-else-if="type === 'B'">2 p6 e2 Y# [2 i, J" A: N
- B6 h' _) r# T! m" T# ?- H" N
- </div>! j" J+ z, I9 o& j& f( A
- <div v-else-if="type === 'C'">) F5 {+ ^/ s+ y+ Q, e
- C" [3 Z+ Z" Y) e. [
- </div>7 S* _0 U9 T& m/ ]
- <div v-else>7 b; c( H) M* f$ o: X) Z
- Not A/B/C
+ x9 U: L" k K# X# S2 |: }# z3 q0 u - </div>
4 j* B' _/ S! p4 W3 |: h - </div>" ~. J0 a8 ^% L2 D
-
9 k. r+ B9 z0 m3 G% V - <script>9 z* W+ i: `& ^
- new Vue({
5 b4 i6 ]' _* n0 [9 D* K - el: '#app',+ u9 ]; E; {+ a' x+ [8 l5 M* p
- data: {
; ]( Y O9 ]) R9 s% H - type: 'C': G. g! ^0 `- o, v- k5 E6 C% ~7 `" ?
- }, e: \# n% C) |
- })6 B: [! g" u, ?+ U
- </script>
复制代码
3 b* v, {5 U9 g D, Av-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
! Y; A/ {% }/ C! G5 q- <h1 v-show="ok">Hello!</h1>
复制代码
% s2 Y1 b. t" D, K1 [5 X! a+ `# B- B( U0 |
; P' V% ]0 z+ r8 n6 C
5 [3 i, L# ]: D) O& B" H" t |