|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">: w- G: ]. s2 M1 S- b+ _9 A
- <p v-if="seen">现在你看到我了</p>
) q# [: G3 o' s( R' B - <template v-if="ok">
; |7 G9 B- m( V1 C9 L* x - <h1>菜鸟教程</h1>5 b5 |& N" I6 D1 ^
- <p>学的不仅是技术,更是梦想!</p>
0 a* S3 ^, s+ f m# X: o9 ^4 n - <p>哈哈哈,打字辛苦啊!!!</p>
# l, ^8 y( _7 r7 z2 U0 ?' p# P% O - </template>+ d8 P4 ?1 x) [
- </div>0 J4 O5 i% w \5 m5 d/ i3 I
- ' C5 I. z; i2 n7 m: ~3 p) p
- <script>
1 @! M6 A8 c* o1 `, c" z: u - new Vue({0 k+ F) W% z+ H9 z a9 y4 L
- el: '#app',. Z( t$ j+ M* T
- data: {' p- @2 k. R) E
- seen: true,
. q2 N# c- Y! T0 N/ u2 M3 z - ok: true
/ a6 j$ N" \* c8 X& c, L - }
0 ], r5 x( h, }6 H4 O - })
% K1 v$ k0 H8 t! S/ o - </script>
复制代码 1 _2 ^+ J& F* s
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
4 W: u2 @( m" Y* i: P - {{#if ok}}
+ Z( a0 B" O& }3 N/ y8 T' U - <h1>Yes</h1>3 y* W2 S' c* A4 I: h
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
o9 z' |! X* s1 S9 k5 m4 V6 e- <div id="app">
; {. g6 ^4 T8 q - <div v-if="Math.random() > 0.5">
! q0 o* ?) r) k) g - Sorry
' `7 K% G4 G% @- ^ - </div>
/ `( ?* g( |7 W+ a ] - <div v-else>
* ?4 S$ Q% M" V0 G+ W# O7 q6 k - Not sorry# N1 B6 A% u5 n
- </div>
. U5 ~6 r8 N0 K" ]: w M - </div>( e- [/ q) ]! X4 W+ t, R% U
-
" n0 t, [* d1 x& V7 q) G/ } - <script>1 F( U( }9 g& H5 ?2 K. ~
- new Vue({+ B9 Q* S! ^1 H* s3 f
- el: '#app'
9 m- }" f% g8 s d5 B - })
) Q3 J$ w/ X. U5 X7 }) F- y - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
3 G9 g- }; @. N* W9 G2 }- <div id="app">
( \% J+ v1 W9 h - <div v-if="type === 'A'">
3 G6 t( s/ j6 {6 r - A
# A R, V. O$ O0 [ - </div>
" Z. ^% M$ i( i/ |5 p3 E - <div v-else-if="type === 'B'">. j2 S' B; ]+ D* j) L: W
- B( }5 q% C6 I9 {1 l8 }$ J, r
- </div>
" H3 w# q( |6 t1 c - <div v-else-if="type === 'C'">
5 d H: I; m, S& u* J [2 \ - C5 W) y, a: y: z" I) ^3 c# b$ A3 l8 S
- </div>5 h7 f6 |" p! i6 }3 I. R) K& p+ {
- <div v-else>* P) p% I# u+ j+ }- {
- Not A/B/C( M5 G! C' r/ | A7 N o+ D4 v, M
- </div>2 @) Y* T# w# D5 c, h% {6 |4 b Y
- </div>
1 d% z s+ E: }2 B& n5 V9 ^ -
0 g' o& O- ]$ ?( N# s - <script>) H& D4 W: z d) b! b
- new Vue({ O( v+ a* w( E5 y! ]. x
- el: '#app',
4 m5 Z: @ u+ }& q7 p4 |: z3 Q - data: {* J5 t! ^6 b1 b' T) z# v
- type: 'C'
- f$ ], {4 E! [) D' [ - }
4 y: n# V3 ~+ X; H( F - })0 y7 i! _* d! L" h
- </script>
复制代码
+ p4 N7 w# x- ]4 n2 yv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令+ i. l1 _0 Z R' q6 l6 k
- <h1 v-show="ok">Hello!</h1>
复制代码
* S/ O+ t" T5 c7 p) W6 D
( n$ ]& R9 g# z8 ~4 f% @" o6 g: k" s, k3 t5 u9 _: y& N# C7 r7 V
; T3 s0 n0 X2 N a |