|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">; U. P6 J! T! f3 }: s4 F7 A+ H
- <p v-if="seen">现在你看到我了</p>
2 y1 M- W, }% B0 u$ ` - <template v-if="ok">
+ r( \+ w a- U. {4 X+ Y |" @* a - <h1>菜鸟教程</h1>
4 l6 }; s9 `/ t. Y) H9 K0 ` - <p>学的不仅是技术,更是梦想!</p>
' b6 u( c; y$ T5 C' W* e8 D- t4 e0 w1 Z - <p>哈哈哈,打字辛苦啊!!!</p>% @( A s+ G7 q/ g
- </template>
: A+ d; [7 \7 x" Y; t! ?$ ` - </div>/ F& N( l% W+ ~% L5 x- L0 q
-
M2 [3 @0 c( s, ]9 `3 m9 R. z. g - <script>
) U! Z/ Z, k9 d# v9 s: Y1 F N - new Vue({- {. P1 I; k% G% y% q# x
- el: '#app',
7 @+ {; p1 @& V0 L4 Z2 a# P - data: {
e! {! \+ E% W9 n! z8 ] a - seen: true,
9 x4 u& A* Q9 n8 _7 L3 ] - ok: true: l/ A$ p) S$ {( K9 G
- }% O& S: L& F' W6 F' q
- })$ h8 t" N" E, H+ y: b) E% x2 k
- </script>
复制代码
+ i) k5 g5 i& g! h1 z这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
; Y" v8 U% a: P& `4 t6 W' z+ L1 ^ - {{#if ok}}
. j% G! H0 u4 |( n6 P: \9 H& V - <h1>Yes</h1>9 @& h i- K7 Y7 s& W5 ~3 z
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: ( S3 h2 e% v* i9 X$ t0 }
- <div id="app">4 }& I% m. Z' `- @$ ]
- <div v-if="Math.random() > 0.5">+ M; K7 l% Z, F
- Sorry
1 h/ p& W P4 W7 t - </div>$ h2 M v7 y# H) e8 r8 }
- <div v-else> G7 n8 H( S( n
- Not sorry) L, M+ |) O U/ H& h/ b
- </div>
- d% _! _) o4 }/ a( S# a - </div>
9 d! U4 Y% f0 ` - 8 a$ ~: w+ o/ y4 K$ J
- <script>6 u$ o, e. f! D- \5 H* {8 _
- new Vue({
" w" [( [7 v: N7 k3 | - el: '#app'; c' p* q E8 M) G
- })& i+ }- k x7 Q/ ~# m7 V
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
. q+ H% w7 i* r( z/ M. }- <div id="app">/ I$ X/ M; s/ X1 a x# g; e) x
- <div v-if="type === 'A'">+ T8 T3 W1 l$ B& O* J
- A# O3 N* f/ w! u, L( C. w& Z9 d
- </div>, [6 v, u; [% `) ^9 f9 F9 a
- <div v-else-if="type === 'B'">
: S4 s% ]# n. x# k - B
6 ]7 P& R" ?9 h9 `/ z$ l& X3 V - </div>
- p+ l8 k2 Z9 |$ _2 j: T- H - <div v-else-if="type === 'C'">
8 k8 p p. a/ N: _! a0 o - C
) m5 @, O3 F6 `" ]! a9 y - </div>) S9 x0 N. T: g
- <div v-else>/ z4 V U8 ^8 x
- Not A/B/C+ J0 A( ] b: E
- </div>
( u" @$ b, j2 D" x" M9 @# [0 W - </div>- P( V: O8 |' Q& m
-
5 s$ P) j5 ]) J# p& m2 q; T: b - <script>4 u3 j7 z6 s/ j) j
- new Vue({
. R; R# z5 g5 ?6 N- R - el: '#app',: Q5 y5 f# {( O
- data: {( m Q$ W4 v8 ?3 z) i% q" T
- type: 'C'
6 X; l4 g/ Y; j; M! S - }5 a5 d% }8 F. G. w6 p
- })2 `2 |9 V5 G/ r: P
- </script>
复制代码
) B$ Y/ `6 v0 H, D, S5 Cv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令$ v u9 }2 U* v7 T4 ?
- <h1 v-show="ok">Hello!</h1>
复制代码 : M+ e( T* A8 I
: \4 I& l- w# c3 q, N
2 ~4 }8 m% [2 B4 C' X
' S! H4 n5 H J7 ]( z ] |