|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">. ^1 o/ |7 n9 ^# u. w
- <p v-if="seen">现在你看到我了</p>
0 A/ Y0 L& J. b: o0 h - <template v-if="ok">1 [5 G# y1 V4 Q, ]5 t$ L
- <h1>菜鸟教程</h1>3 ?3 C" b! ?* p& g! o8 V
- <p>学的不仅是技术,更是梦想!</p>" ]) m8 S2 F* c! e1 X* e1 Q
- <p>哈哈哈,打字辛苦啊!!!</p>/ |# i2 j4 K- o5 ?4 x# g
- </template>2 _' e4 s# J7 `0 I$ e9 V( V4 [
- </div>
7 Z+ t0 H' V$ D& C/ l -
! L% Q" V' P& s - <script>
: P) J7 ?' S& c/ h/ L- Y" {: F - new Vue({
: p; ]" `# M! a- [; q5 Z* w) f9 \8 v - el: '#app',
0 Z3 |- {+ @8 [- A - data: {9 C) ?, g( @7 i& B: B! d6 N
- seen: true,
; E2 Y4 ~( B& S- ?$ C- s+ e) C - ok: true
3 ^* m6 `$ ~( L; J0 T. u% W) N3 A - }
4 x: f0 |" u- K% h+ [ - })2 H6 y* d9 \7 G* _" P
- </script>
复制代码 ' |& c. C. p( k# w
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->; L* n+ Q; o p; W3 ~6 O, A
- {{#if ok}}
' k# z: r+ C! s9 J$ p. R* v - <h1>Yes</h1>) Y9 ]: s$ o) l; l5 D
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
) T) \" c# q2 z/ y; E/ `0 Z- <div id="app">
- ^- E; w$ ^9 }2 d/ v* V - <div v-if="Math.random() > 0.5">& L; s6 l, _- k( O* b' B
- Sorry
) q2 N) _$ e4 z' m; W2 i1 ^ - </div>- s+ k) G N0 F ~% \2 M5 [* K* H" A
- <div v-else>
- C! U$ g s$ O% {1 v g7 R% Z - Not sorry
* [* e5 `/ }& S5 F# f9 } - </div>
4 D2 U5 L& U. k# A& k - </div>
: q- J+ O& p+ B/ t -
4 E; ~2 T+ x4 R& k, B$ S' O - <script>- _& K( m/ K" J1 O# {* R9 d
- new Vue({, g% [4 x( y/ q V3 O7 m
- el: '#app'
. v% h) f; K- S3 A - })
" u$ n* M' ?- X z# ?8 u- E) q - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: ( K& E; m2 x( R2 b
- <div id="app">
a# ^- V' c) U& {) x3 l% ] - <div v-if="type === 'A'">
: O: }3 w# R Q0 c - A9 O( X8 Q5 M7 @' f: v2 F' |* B
- </div>/ K' T7 A0 b9 W7 v Z S
- <div v-else-if="type === 'B'">
) R1 O9 {1 k* J O: B. h$ F - B
$ I& B) S. ?9 Z6 n3 t" ?' N9 d1 z - </div>
: c) f9 S0 j& s8 f2 \% @ - <div v-else-if="type === 'C'">
' X# I" A f7 v/ p - C
5 ~% [* v: l: @7 } - </div>: q& W5 Z7 C3 O; S
- <div v-else>. L9 w' V6 U4 u7 B$ g
- Not A/B/C
0 k* K, K5 X- @$ }" e, ^9 K' G - </div>; o) a2 _0 }/ w: p7 ~
- </div>
% [. O$ w1 F/ A2 \( E - : Z' z% ~5 e' t4 E9 X! Q" K1 c
- <script>
0 R( k. X, x" C8 k/ z0 C2 V - new Vue({
9 {# P9 H6 g' d8 q0 v! M - el: '#app',
6 ~2 j; L7 |+ e5 ~0 u% u. S! h3 D - data: {9 ?+ F7 D4 J6 ?! [0 K, n
- type: 'C'8 t) Q5 n1 c7 ~0 U+ j
- }) N; V# f! y! w' V
- })
V( P$ ^. l1 [' X - </script>
复制代码 + ^3 [+ _$ {9 z, b' v' j! I
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令/ V0 c& V( p# m. [" N4 [
- <h1 v-show="ok">Hello!</h1>
复制代码
# z0 l+ }& B- j7 A) [# {# U6 h6 d' |; C0 `: q1 _; U1 E' h- F/ X
8 j0 @" {; u( h3 G# u8 \
5 }( c9 ?6 j7 b) `! { |