|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">- U- Q2 \& |. [: n
- <p v-if="seen">现在你看到我了</p>
8 R( F2 Y4 f8 ^# ^ - <template v-if="ok">( |7 f/ ], ~9 D" O/ t1 [- }: c
- <h1>菜鸟教程</h1>; Q# Z7 {, h9 w5 `) S% p3 W) p
- <p>学的不仅是技术,更是梦想!</p>
% Y6 b) }! s) D, C3 T- z7 w1 ] - <p>哈哈哈,打字辛苦啊!!!</p>% \0 |' i7 L# B" W1 m
- </template>, s" x3 A. V* V# C+ G" d6 m
- </div>( ~! G1 g+ J8 P* v8 c
-
4 L- A7 a" T# j1 N, B - <script>
$ L6 n& d' G: E4 d' O8 t$ k3 t1 ^ - new Vue({; f0 n- v- L4 Z7 s8 {/ w
- el: '#app',: V" B( Y% W( y' }" u0 |7 ]9 s R
- data: {$ S3 B, c# b5 |/ H; k* z
- seen: true,) O% U# I# P: ~
- ok: true
) e! v3 d! X1 b: k1 X - }8 X! o0 I! o: x& I: Q
- })
. ]) |. u* r: \4 ^# p. D7 k - </script>
复制代码
9 X( M; X! Z. W! G这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->4 s P" V" y# Y4 \9 Y1 G$ B6 h; W
- {{#if ok}}, X- p# {0 n4 x) ?! _
- <h1>Yes</h1># w q8 S, \' f9 N' v2 z J
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 3 L# u) C2 |8 f: ^' n! H
- <div id="app">6 F' O7 A; b: L% C
- <div v-if="Math.random() > 0.5">+ \* c4 T, s0 F! X; S9 M
- Sorry
4 i+ ^7 b( l( j7 V - </div>
" p+ ^1 ?$ [2 z: Z: V; i2 x, P6 l - <div v-else>) \; d; @3 F6 c* u6 t z' h( L0 W* J
- Not sorry
3 M3 _# D1 J- ^8 A; b' S - </div>% y8 F0 p, B" D: [. {& c+ I# R
- </div>& ?1 X3 { S! p; c5 T7 @+ b1 A9 m- X
- 5 S$ ^/ \2 C; s, G* j3 T* ~. M
- <script>* E7 ]/ ]: T; {* c+ l! G- O. A8 |
- new Vue({' ~- S. ]. J, E9 V
- el: '#app'8 ^- e: r0 M8 e- r5 I+ [
- })
9 }+ J0 Y L- \3 o5 ~9 C - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
5 X. M. r9 S8 g; W8 {+ i* f- <div id="app">
. S" e) @6 n" h K - <div v-if="type === 'A'">$ |) I2 g2 W% u: D3 i8 M3 r
- A
1 b# ` ?: S; W) A# S2 R/ O - </div>: s' A3 l. G1 w6 s8 n( _/ G
- <div v-else-if="type === 'B'">9 Q5 `$ r4 X) I8 l' M" ~ {
- B
3 K1 s$ H; F; V' h3 _1 G3 v - </div>) @/ w# z4 \1 b' j
- <div v-else-if="type === 'C'">
4 q# n% c2 A- i2 p6 u h - C
' i9 e0 \7 S+ X7 E5 Q - </div>$ b) _3 c: Y) E' Q, R
- <div v-else>
c5 d% T6 k' \3 g4 l! T2 z0 ] - Not A/B/C
; z$ Z3 T" e% T5 Y" ~ - </div>
8 d2 M& n: r- H2 z: k, o - </div>0 I- W2 g" q0 `9 g" `
- 6 G& a" R( @ w, s/ @
- <script>0 b$ F" u- m/ Y7 y+ L4 P9 T
- new Vue({
! L! s' G, ]4 t( P% g - el: '#app',! G0 F4 t: {1 Q
- data: {
; f/ F: ^; [. P) ]% O/ Q- _ - type: 'C'
9 ^8 W; _/ B0 G( ~ - }% ]9 ~8 V0 P) d% Y" l* c6 J) j
- })
0 T% F/ W$ A. ^' d) O0 w9 O" R - </script>
复制代码
# W+ [2 D; Z& iv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
) \% E" z! S' P0 e' b3 k8 O1 G( w& D- <h1 v-show="ok">Hello!</h1>
复制代码 ) c+ D7 }* p r- d2 A+ i
- s! ]" x1 i W/ H
5 e M0 ~; w6 a, Q- n! o8 W" T
( n! o* Z& s/ Q. g V1 F: K |