|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
' g; `1 J3 `/ \$ C - <p v-if="seen">现在你看到我了</p>% Q( f5 M9 H$ s7 y' Q) _9 x
- <template v-if="ok">9 k- z8 t; k6 W4 f3 P- P6 n
- <h1>菜鸟教程</h1>
) G; i _; U6 v- E' H5 v0 q6 _4 c+ v - <p>学的不仅是技术,更是梦想!</p>: o# ^7 A! V- G7 k
- <p>哈哈哈,打字辛苦啊!!!</p>
$ ]/ \' K! f3 U1 f - </template>
7 I1 f: N" x% ^: I* { - </div>
* K0 R, T8 W. s; T -
j* e4 e: n2 d3 E4 y" p' e - <script>
9 k/ R) e- W: u/ M - new Vue({
" S8 D+ l! K0 _7 \5 V- u - el: '#app',
" S" M/ g: i/ p$ y: b8 ^4 P - data: {
4 ]# @* Q, v3 F4 w% h/ S" T2 p - seen: true, `9 }* n& e( y
- ok: true8 Q+ L# Y# H. V, o
- }
[+ J$ ~0 B: n. A( _2 L; {* z# ? - })( ~3 l% H) ?3 s( Q
- </script>
复制代码
0 N1 h* F Y1 _2 q这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->" b0 Q" d. @" s5 G3 J/ o
- {{#if ok}}" R2 x0 A! Z8 e, N
- <h1>Yes</h1>+ ~7 y0 R- F! a, q# ^
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 2 q/ [$ ^! \4 R3 e Y! |% Y. D; x
- <div id="app">
* H9 d; f, F* L( \+ `2 J - <div v-if="Math.random() > 0.5">
# s5 o% C* F/ Z$ ] - Sorry
$ I% ]4 @' A6 [/ B1 G - </div>
( V& G9 w/ X) ]: [$ C! D F - <div v-else>7 D3 r& L; N- I
- Not sorry8 `. Y+ X. d& d0 D+ Z
- </div>
+ s6 @, Z/ L1 u+ | - </div>5 h9 m/ w& q' _( F8 B
- * `8 t# q# @/ R& G$ Z" |& @% n! |
- <script>
" M3 |# P& ~; q, D - new Vue({$ \3 L4 h" ?2 K9 |
- el: '#app'
" C- J, o& {/ g. x; a2 O1 S - })
( V0 Q7 r; R* L# v+ | - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: $ N c, `8 d# X/ t2 Y s
- <div id="app">% o* N' q( h0 e- A) N* G: Z
- <div v-if="type === 'A'">
) v2 T: }8 z I - A0 U: ~2 @& k) j( z& |: j
- </div>
$ a7 V2 V1 R4 W! u& q - <div v-else-if="type === 'B'">
. @( w u. E5 a( i, P/ s* G - B8 \$ P8 e" T \
- </div>
5 s+ w0 N" e }- B7 M - <div v-else-if="type === 'C'">
& w/ j! E. }, \, b9 @- F- D - C
) S* o! l! Z+ N' j - </div>* G9 {( {# v2 g+ x: u6 N
- <div v-else>
8 e% j G5 ]9 i8 j - Not A/B/C- E9 ]; S9 \/ M6 Z( m
- </div>
8 ^) q8 f$ o4 H) \; G/ l) y' S0 ^- }& B - </div>
4 u: r: ?# Z+ O, { -
* y1 ~% E) N) \( y - <script>
$ [3 k3 X4 |! N$ A7 ]8 b - new Vue({
& _' |) O j8 [0 d - el: '#app',
2 n, x5 C; K9 X* E5 t% u# ^/ P# \ - data: {
( u. ]9 x* u! l: K& t3 n- O - type: 'C'
9 x: d* M0 i4 V8 a6 w3 C6 ?+ M; K - }
6 T) l& l& s3 I, W, O$ e9 g( a - })0 r6 D" F* a! Q! b
- </script>
复制代码
" s% v8 v0 ]. j+ [2 @6 K, Jv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令% c F* w' k1 J p4 ?# w
- <h1 v-show="ok">Hello!</h1>
复制代码 % ?* |5 I' s8 u% G7 a$ |( q0 h
8 r1 A5 S9 m* E: g- N9 ?
/ W# h: r9 w" z: u
4 c) N9 ^8 K5 n. }( D5 w+ \( n |