条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
0 z* T$ w' s/ v6 T) \9 V/ j. o& C- J - <p v-if="seen">现在你看到我了</p>
3 I9 p; x. v0 c) h. K# v" e" K - <template v-if="ok">
* G$ m4 D. U. j6 e2 D* q! D( n - <h1>菜鸟教程</h1>
5 L; |) m/ v# I - <p>学的不仅是技术,更是梦想!</p>8 |: h ]+ Z1 D% s0 \& L/ v5 t
- <p>哈哈哈,打字辛苦啊!!!</p>
8 {9 j" C8 y s2 u7 z. F/ X - </template>8 G( I5 j' x0 H
- </div>
; ~9 j3 A6 H( B) L: l5 F0 a: d - 5 j- \ U/ R( d' K/ c
- <script>- x! \ u' x' u3 V& j+ _* u
- new Vue({, M" f5 E5 x' e; y# p: \* i2 z+ ~: V
- el: '#app',
! a& W( r! ^0 K; z1 N - data: {- }' }# Z m* F4 Z
- seen: true,
; g, h0 E8 W7 M' Y8 R - ok: true
: m4 g. x, ?! _4 r+ y& @. s, E0 T9 c - }
2 v$ u0 C' H8 {( U' s - }), }- l/ O0 M. h' l e0 `
- </script>
复制代码 3 X9 \: G- K- ^9 {
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->; ~4 S* _' @( G
- {{#if ok}}
; z( ~: E, {# a2 `+ Y9 P1 {8 ? - <h1>Yes</h1>
- E( y: Z8 I' m9 I - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
9 U, _4 m1 \# B# ?8 L- <div id="app">
* \( n+ {9 U4 M% y+ S9 T* O% q4 V - <div v-if="Math.random() > 0.5">9 A$ ?2 e, e0 |: B/ d
- Sorry
4 Y$ V2 L+ c8 [$ L3 ~& S4 d3 J5 r - </div>
: U% e3 E% H0 x. F" a0 Y6 | - <div v-else>, ?1 \7 Q& B0 l; h
- Not sorry
; ~" C: _$ `7 c# R2 A - </div>3 s% |" J) ~1 f A0 h- k* l
- </div>8 M. I( Q/ w) j8 Z: u3 U
-
8 b5 C/ S$ [& C4 G* w3 y. d, l5 Q - <script>( {1 o. t5 S2 @/ s4 h4 `
- new Vue({
2 ~& f. L9 q" J. C) J- `1 v - el: '#app'' u* Z; C0 Z- W% n' F
- })
/ j2 J$ x0 d$ R! H( c - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
3 a1 c: ~! \5 i$ {- [- <div id="app">
; ~: ?. g) Z5 @# Q& E6 S! d - <div v-if="type === 'A'">
7 a8 e$ N ?3 i3 S- D - A
1 e5 s* q+ e, X - </div>
; S3 {4 I& R- @' s, m - <div v-else-if="type === 'B'">
' J' O2 r: P: E" V* c9 J. j - B; e6 p, F* [+ k; Q" l
- </div>- M% g) i3 Z4 M. `( `8 W
- <div v-else-if="type === 'C'">
: X& n; p( N; J: ?2 h- `+ I; R - C- E7 N1 N2 z9 F. b- ~/ F& k* n
- </div>
- Q. u) Y" |' p - <div v-else>6 E( l u0 H2 Q. U; M
- Not A/B/C
. L* y! K' i$ b0 m E& g# Q5 d( s - </div>& `4 U! v; Z8 W' i7 j
- </div>
* @) W! C4 k* n: s - ( q W) J! U H4 W
- <script>$ I, Z; s# T: S9 J2 w$ T1 K
- new Vue({
2 C: N. @! q: f: X4 W - el: '#app',2 w$ `2 ]8 @9 l
- data: {
/ G9 f2 n; n# H; o; P9 d9 j - type: 'C'
+ g7 S" r, D0 H r: d0 ~6 M7 M( H - }" z4 Y3 I: V" f+ A C0 v( I
- }): I6 p1 W$ @! R
- </script>
复制代码
5 E+ w2 T2 T. G; qv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
) i1 a& K/ Y* ?! n* P M- <h1 v-show="ok">Hello!</h1>
复制代码
& m, P" Z% s- v9 X+ T$ M U3 \. ?+ Z4 X# Z
3 B9 m9 f8 w0 S; l
+ y7 N3 p; A! }- P6 a( x4 F
|