条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
/ @6 g; C8 c' Y& P: i - <p v-if="seen">现在你看到我了</p>7 r( @" J1 w' P% e2 \
- <template v-if="ok">" K0 g: }# C7 U: N8 L+ }" R
- <h1>菜鸟教程</h1>$ r4 U; O0 b+ |1 X2 z
- <p>学的不仅是技术,更是梦想!</p>6 v% y5 Y0 C5 R' }
- <p>哈哈哈,打字辛苦啊!!!</p>
4 X% m; A* u+ C$ F' \9 s0 q- S+ u - </template>" f4 i8 r1 K0 u5 H) u& _! J
- </div>, y. a4 R% q4 y1 k& J* H9 O
-
0 V# B( V: R! J8 r% g( N - <script># J0 O8 Z' I: u1 B5 w7 @
- new Vue({4 l* g8 B" w) o, n' W4 k
- el: '#app', q% S5 W4 ?* `: n& N
- data: {
1 J5 ?% X$ E, @' y - seen: true,
' [- y# ^: `' L* S8 v - ok: true, p6 V& {- q: t. a
- }
" K& | Y' N# z+ C& y - })
0 \3 H9 v @5 c+ n P9 \' Q1 h - </script>
复制代码
- V6 N3 `8 j, l% m/ D. C" y这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
9 l) {6 A% U5 [0 N) Y6 [; M - {{#if ok}}
: D9 s$ ~ K1 g - <h1>Yes</h1>, T6 H' x' `8 }) {8 E
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
6 P! w6 l! g7 ]$ x& I- <div id="app">6 D6 X: y W, _: |
- <div v-if="Math.random() > 0.5">
: L" v4 d8 B; O* l8 N - Sorry
; K8 X8 I6 B7 m2 Y. Q - </div>
2 M4 G: p) Y, y, a/ T4 c) v8 U+ ` - <div v-else>
2 ~+ S0 N! B2 C" {# q - Not sorry
5 ~2 F8 V& w: C! ~ A) w* a - </div>" r2 f$ P2 @, x6 U8 B& p
- </div>, o7 H( \7 d2 W# {1 _$ ^5 E
- t; B( ^: }9 U7 {- ~4 a- ^, K
- <script>
, n# }; E0 y3 n$ R) a+ H) @ - new Vue({- q3 D$ b k+ o! [% b! t5 o) [( f
- el: '#app'
5 Z) g4 ?. A' I - }). W' |. }6 {1 i5 e8 g& J# ]
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
1 P* W! ]" w2 m$ ~$ I2 n r9 T- <div id="app">
0 g$ i* V% w" `# p: M - <div v-if="type === 'A'"> l: m: N0 @0 x+ |% j/ ]- ~+ `
- A
' { p+ t5 \; K: `* I3 m/ Z0 P - </div>! j2 w. R( Z& v9 ^* S( M
- <div v-else-if="type === 'B'">
& Q+ P: C( f$ f1 {/ X' } - B
; z8 h' E7 j5 P" K) J2 O( `) _ - </div>5 K. J+ l( U O
- <div v-else-if="type === 'C'">
' A$ o/ |/ [0 G0 u$ y, u - C* Z; g+ ^7 H) V5 T+ \( ?
- </div>4 V( {9 i! O& v0 Z! C7 I; |
- <div v-else>2 K3 m0 Y1 `3 Z
- Not A/B/C. J! b, S- n: W' P0 u* Q* v1 r
- </div>
6 G, Z( K( ?4 D- ]7 k$ k3 s - </div>2 A Q P2 | J1 M
-
- }; f. {/ o; M# ^0 K - <script>
" q4 |5 T) ~' C# _% ` - new Vue({
* m8 ]- v( ]5 B8 i - el: '#app',
+ [7 A3 i* w, K) G/ \ K; [% z - data: {. x, Z& U3 X% V
- type: 'C'
, f& E& t! d, N# K - }
, c; u: ?( t. S% U0 E- H) j - })8 m+ X, ]6 F2 `
- </script>
复制代码
2 V- w, [5 x2 V) H3 o( e4 Iv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
" c h2 ~7 Q& Y% I+ M- <h1 v-show="ok">Hello!</h1>
复制代码 * k6 ^4 V2 W9 J4 m8 ]+ H
& K4 w$ O9 f- Q' M6 [' _7 Q, P
% u' d4 y" j+ p, i8 I$ E5 n
. U) [6 }- H9 D. @ S/ A
|