|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app"># A; f4 {: X; u
- <p v-if="seen">现在你看到我了</p>
5 y3 A f' |( |' X6 N1 ~ - <template v-if="ok">5 S; C U/ I9 M( p. w, l9 q! b
- <h1>菜鸟教程</h1>
8 H# N& s; c& n, Y; m: w - <p>学的不仅是技术,更是梦想!</p>
* s2 y& N. r* P' x* q, m5 \ - <p>哈哈哈,打字辛苦啊!!!</p>6 x$ d& [6 C# U9 O7 G5 E
- </template>
, z+ C+ Z$ @* z5 S+ s - </div>
5 Q8 B4 ]% d7 n3 W -
+ S, E7 a! L. y$ P6 } - <script>! q5 g' T/ ~, L3 n
- new Vue({
: I$ f2 }4 y E/ ? b8 h - el: '#app',
, h/ W* e' X# ~0 y2 d9 ~ - data: {
/ k$ d' p3 O. X - seen: true,9 i1 i o1 F+ w7 m6 o: x/ U6 |! F( y' c
- ok: true" f# a$ m, r* B% c3 Z
- }
0 y; I( S& B& I9 ^0 n3 F0 K; N" v& ? - })
( C( N7 Y$ x7 u- `/ {$ s* J, V - </script>
复制代码
+ P, y; z0 O$ }' r这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
" x' N' P5 {! _# y" D - {{#if ok}}* j! O4 `* G" Q$ o; v/ o2 i! ^1 T
- <h1>Yes</h1>, D! ]( w+ U8 I* M7 U, c! m9 \
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 9 G5 Y6 H3 F& ~4 u4 q; q* E
- <div id="app">
( a4 b5 p# H% r9 h; O. D. ^ - <div v-if="Math.random() > 0.5">( }$ b: L' G' {$ M' d8 t9 a7 G- X! A
- Sorry! q8 U, W* F/ S
- </div>
7 Q2 v' A6 ]2 Y# J - <div v-else>, A2 _6 R, j6 P% l/ g) x8 A" A
- Not sorry
, J4 A2 D. K# ]" F/ W) h - </div>
0 D8 ?& H( ^% I& W1 T3 B - </div>1 q& }8 {1 |' ~1 d0 h
-
5 g/ P6 M% H6 R# z% R6 a - <script>
4 g" j& {$ B8 E) u4 \ - new Vue({
' q1 q% x w/ K4 q - el: '#app'+ |% |3 U) @: h1 b1 j
- })) {( K7 Y# Z A' I* G6 F' G
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 0 ^0 v5 d/ v2 ?8 C$ O( l
- <div id="app">
+ P! X' z% d( T: @1 w. |8 H - <div v-if="type === 'A'">
! V+ I! F% o% O: B# w( ` - A
7 T7 m2 d0 U, H! q3 S8 j& G - </div>
% |% ]) I* ~: Y9 | `; u - <div v-else-if="type === 'B'">5 d4 [. _; _- q+ e( D* F/ f
- B
# w8 r* F0 k2 Q n& _$ I2 H& T+ T - </div>
3 e" P/ g- e0 y, Q( H4 _$ w+ j - <div v-else-if="type === 'C'">
2 b: s) x- g b/ s4 ~* M9 n4 U - C( d4 }0 F' e: O& F3 J
- </div>
8 }8 {7 G3 o* [) x$ h( i3 e - <div v-else>
/ A( \0 c! ]3 O+ K. b9 { - Not A/B/C: b ~$ f' Y8 w2 a7 e
- </div>% y4 \4 s7 `2 {
- </div>) b2 h7 e2 K5 r4 [5 e1 D
- 2 ~; c/ c" g/ y1 c' t4 i) S' a
- <script>3 Z v5 y4 Z2 ?" | s6 Q
- new Vue({7 I) D/ p& e- B3 r9 \4 m$ c
- el: '#app',! Z0 i. a! l+ Y) y6 s; R1 l" H
- data: {
) Q* |( G8 g- r9 b; X2 I; K - type: 'C': K. ~" G x1 t/ }8 ?$ G: e
- }4 k. p. _& }% R% y
- })
z5 a! d; M" A, I. G2 N - </script>
复制代码 # x- ^' C' s6 z- d- F
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令6 o4 R& a- q" q7 X' K/ x
- <h1 v-show="ok">Hello!</h1>
复制代码
, c a: T+ i1 B( N" I3 P/ y
_: `' G4 p7 H2 Q% ]; d/ m7 {
5 |, Z" ^" S8 N; P4 S/ U4 ~+ v$ n
0 D5 f/ u4 A' p7 S |