条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
3 F' C3 ~+ U! ^8 w9 x1 H+ u6 |& d - <p v-if="seen">现在你看到我了</p>
5 o3 `# i! P6 k5 F) Y1 v - <template v-if="ok">
( _' H- ~" D, |# H% }3 h0 y7 w( a: C - <h1>菜鸟教程</h1>
, u+ P3 u. ] [, G% U - <p>学的不仅是技术,更是梦想!</p>
6 C& T% N& o" ^: S1 Q0 o - <p>哈哈哈,打字辛苦啊!!!</p>$ i/ S8 x, x: r' S6 Y9 t
- </template>3 @5 x" F! [' Q( K1 H
- </div>8 {! S+ s& t6 Q# K4 [4 o
- / f& i0 m, q1 _$ n: B* x
- <script>% W6 f) r8 a, O
- new Vue({5 O& m' k8 Y: X, ~, ~
- el: '#app',
9 r9 `9 C2 ]( I* o" X+ ` - data: {% V+ i) ^' a; H/ I- x; W
- seen: true,1 _8 Y1 h6 n, q3 U- h
- ok: true
" g0 K9 Y. Z% O* M+ \: D# V$ p - }1 I/ ~3 y3 T: ^ W
- }) C+ `# [! J% c0 Q4 H. u7 ]9 X! r
- </script>
复制代码 l0 l& @ f$ A& ~' F
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->6 [2 P: T, j5 ?6 j& }
- {{#if ok}}
, L& s( \; {! U - <h1>Yes</h1>
6 ]+ a) U1 h7 g% S - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
- Z" M# X0 T& _& L- <div id="app">
6 P+ w( R' r$ p( @ - <div v-if="Math.random() > 0.5">4 g; x s+ z# l* y
- Sorry/ ~! K5 V$ j* d" a* n: T
- </div>
( Z6 f9 O4 p$ x - <div v-else>
5 [1 v* c! Y3 V# U' } - Not sorry
9 L. T: I$ d# R5 X+ j7 j* I6 B! L" c - </div>2 q V1 I+ C5 a5 F
- </div>0 c W ]- h4 H; G1 H0 C
- . ^3 O. X! ~4 y
- <script>
4 t: ]: {; C6 x* V& x - new Vue({) a3 ~0 y6 w4 S a
- el: '#app'& f, W% R+ V! H0 a* M* \
- })
6 j5 r7 m# T9 P5 y( | - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 4 z3 d( ?) `, n
- <div id="app">
0 i" ]& D8 O$ s$ V+ ?8 g: k5 E - <div v-if="type === 'A'">3 \. _2 Q6 X1 I6 U- y {
- A% a; A E/ k1 O- O" O
- </div>) V4 O1 |8 |. |1 G4 |
- <div v-else-if="type === 'B'">
$ K4 o7 U0 J& e% K9 U - B
* G5 f9 |4 Y2 ` - </div>
' V3 j% b1 ~ U( J+ k4 I; u - <div v-else-if="type === 'C'">/ G0 \/ ?% k$ j4 D# ]& w! j3 H' k
- C% r/ v d+ F& j% R( t% ~+ `
- </div>: }2 ~7 }3 {2 Z. [7 u# }6 w
- <div v-else>0 F/ U) p1 [* A1 K" b) @6 s
- Not A/B/C
4 t( Z9 n4 W0 n8 r8 L. W! a# x# L - </div> J! b& ]" ?( \
- </div>
' {1 v7 W; W: z8 L - * b5 Q* o ~9 E! {5 L. }1 N4 k
- <script>
2 F0 h3 P* z" J* Q2 p - new Vue({
7 x a, E* |" H9 i: {0 d, a' p8 ]% Z* h - el: '#app',
; X) o$ ~* I \! o - data: {( c0 P( b" {9 Q8 p
- type: 'C'
1 [ ~- j) I) `0 M - }
& V0 E" m0 k5 o: T6 H- k* R3 \ - })2 E+ t& a8 ~. g' A& |3 q" A% P
- </script>
复制代码
! u" l/ `% @/ b# V$ i9 B6 Xv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
' t6 d% ?) m8 v- T+ f2 \6 y4 K- <h1 v-show="ok">Hello!</h1>
复制代码
& B, T1 d; l( a' f+ l4 R' u; a- o" A$ H7 `) o+ O& f, v
, _6 S+ G3 Y4 s: A( d5 s
; i- x3 O- A# K7 e7 j: X1 M |