条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">6 A/ }$ e+ R, Y
- <p v-if="seen">现在你看到我了</p># {& L7 @: P& Y( ]5 k
- <template v-if="ok">
. f* l. t" @: }3 Q: c2 H3 h: E3 y - <h1>菜鸟教程</h1>
3 k: Q$ ]& `. M8 F - <p>学的不仅是技术,更是梦想!</p>
" r7 A% x/ @% {! {1 A( M - <p>哈哈哈,打字辛苦啊!!!</p>
" T( f/ e u& F# C9 _ - </template>3 m5 t4 s# R, y
- </div>4 S8 V$ [1 U' v3 c1 V
- / a: B: F/ Z% D$ s: H% d
- <script>. s3 Y7 O' {, h' I+ I
- new Vue({8 F) F* x. _+ ?: D
- el: '#app',
2 U# V9 V& n) E$ }/ |$ B3 { - data: {
' u9 v' w% U: U9 l8 a& J, ^ - seen: true,
- Z) D5 M, C& {" R - ok: true* ?- H) i- S; `
- }' u& P+ i- m! a& t. P
- })
8 t- N$ q0 m$ k7 X& r( b6 ? - </script>
复制代码 " v9 l' H2 V& Q; {, \: E2 X
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->* Y2 R$ R# C( W
- {{#if ok}}
6 G$ D5 c4 z* D% p - <h1>Yes</h1>
5 @; N2 g& N4 z9 B - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 4 U/ {* }6 v9 ~; c
- <div id="app">5 W/ E+ g. }* g; W8 z" N
- <div v-if="Math.random() > 0.5">0 P& |8 X4 q: T+ S! `. ^
- Sorry
8 O4 V7 l: k8 n% X/ Y. M - </div>7 r( f7 Z5 ~# N/ K$ R- o( t% V
- <div v-else>
2 r' u5 w( P4 y% p; e - Not sorry: A M. U' ^5 q. @& v
- </div>8 v2 v% p' w' ^7 h
- </div>
8 i, \% r" m2 ^- D6 C. d2 g - ( v: f. W4 i$ k7 O
- <script>6 ]9 H% F0 K; x. t
- new Vue({9 p: O4 `4 |/ P1 i3 X
- el: '#app'
' v5 i) H& ~. l! R( S& y2 i1 b - })
# l1 Z* g( x0 K9 F - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
: d+ E+ u! y2 D) _( G- <div id="app">; W4 [. B2 u- K" h5 t% ~$ w
- <div v-if="type === 'A'">
7 [& A+ s1 K8 }9 I2 \0 `, ~$ i0 J - A
; c& R0 ]1 j2 x - </div>0 N2 d9 I& p5 w2 [
- <div v-else-if="type === 'B'">, ~ E2 y# d* Y* }7 Q' F
- B$ Z1 M( C4 Q* O! Q. F6 F6 O' m; ~
- </div>9 A# c% C) u8 m3 s ^* V+ R; l
- <div v-else-if="type === 'C'">* D% |" t Z: ~5 S4 n' Q
- C
( w& L' u8 m8 N/ i8 ?: K" g - </div>
5 c% m5 u2 S. m% f* c9 r - <div v-else>
8 ~' ?' C2 |# B/ e5 z% _ - Not A/B/C6 v5 @/ e7 F# p( _# x$ V0 T
- </div>+ p) }" M9 x8 M1 Y
- </div>. U( X' D0 F! @0 O" ]: ?: K
- 8 L: b) X6 A& T7 d
- <script># i! G; l' ]5 o' @ \: ?+ c$ @
- new Vue({/ |( c8 k7 m/ r3 ^8 W- S
- el: '#app',
; ~; c# H: x7 ?3 z9 o" m( { - data: {( ]" y5 f3 o+ R4 }
- type: 'C'9 x: c1 N" B1 L% j1 W. M
- }3 w9 Z G6 I$ z
- })5 ^' L5 o7 ^- W( t+ d( R6 ~
- </script>
复制代码
' G8 L0 F5 I- o3 L |v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
( T% A# n; b2 ?5 y- <h1 v-show="ok">Hello!</h1>
复制代码 * K# D5 ]7 G4 ^4 a. ~
& x$ B8 H) G6 w X+ \/ z0 }4 C# h# i
% m' g) H+ H3 E |