条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
5 E9 ]& U& y' b3 W$ l$ r" s. E - <p v-if="seen">现在你看到我了</p>, Q- H& O: z$ J, F: E) b
- <template v-if="ok">9 r9 F5 B b8 K! {9 v) H
- <h1>菜鸟教程</h1>
! o* `( v _2 b: d4 W - <p>学的不仅是技术,更是梦想!</p>! I# k) f+ m1 p2 J( p
- <p>哈哈哈,打字辛苦啊!!!</p>
0 c. s& [- C" r( G2 R - </template># i& w% `: i4 k% b
- </div>% B7 _ q. g! D) r
-
# q8 V1 ~% s/ |0 j+ z0 b# v" j7 ]+ i - <script> `5 t% |! s( {1 x2 ]5 D, y; r
- new Vue({
3 U/ G0 J2 p& L8 A - el: '#app',
1 F6 J, V& }3 n( q9 }9 g' Q! w - data: {
7 H, o& I. g) D6 E: g - seen: true,$ p6 i9 G# q* H" a% I, D0 l/ `1 j
- ok: true( @' l6 A9 Z1 v
- }
+ {% k1 D# F9 u g! F - })
- y% X- e( Q) @4 ]& F( Q - </script>
复制代码
4 q$ s! K4 w$ J6 A% G' f这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->, h9 ]/ q5 q: M( S2 T
- {{#if ok}}
+ \0 ?9 F: `/ b# D. b: G% Y" H - <h1>Yes</h1>! Y8 ?% `: h5 e* o3 M* a
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: ; f$ A5 X7 B/ Y6 z& n: s
- <div id="app">0 [, i) M7 x# I" O; G4 a3 V& {9 f
- <div v-if="Math.random() > 0.5">8 [0 C4 [2 f7 x& X
- Sorry
% v$ N# |& L# J% H% G8 W* m - </div>1 T% r3 p( ?% c+ s
- <div v-else>+ @& t, j. f0 E: z. K4 K [
- Not sorry& c/ ]9 j- }% n# o0 E
- </div>
" |' s' E% h9 ]4 u4 M* J! E - </div>" g! ]5 \3 U& k$ @3 @5 R
- ( s# U& B" f$ h* D' _! B
- <script>1 I( w- x& X% p: Z. b
- new Vue({) |" w" l2 F+ v0 j/ r
- el: '#app') x+ [- ^3 ~" f0 L- {# l/ d4 S$ a
- })
* [% u& q6 n# J# k6 j - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 7 H/ Q* x7 X: U0 i5 @6 I. B0 b$ {
- <div id="app">
+ L7 p( x) T P8 `* \9 ~" f* z - <div v-if="type === 'A'">
1 U4 X" ~2 U9 ^% `. x# d - A
; _. ?! z% N) R( K: j - </div>- @& B. H( X; g" Z
- <div v-else-if="type === 'B'">" y) P/ V' f: f
- B/ ?* {: a0 O9 o0 V* J9 z
- </div>
' B2 u2 A3 x" l K. H6 P5 x - <div v-else-if="type === 'C'">
. k) ?8 q; j) N- w* ? - C
) _. }7 V6 K& n/ O8 _3 e* b, ^ - </div>* g7 A+ p& b4 e- u
- <div v-else>
* t0 }6 e8 F: Y" R( [ - Not A/B/C# T9 ?) }4 i; C& J
- </div>5 l# q) ^) a( z8 l: z9 k" F. @
- </div>
# _0 J: U1 |7 L# Z& k& ~ -
3 N6 ^5 U) W2 d/ a, _# F C - <script>
) t: \$ u5 r# d1 k. y6 J% L, g - new Vue({- z U8 \& M8 U0 D9 c
- el: '#app',
r. x( | r1 x. ?1 f0 [8 C - data: {
( z q1 z' A6 s9 L( p" H k' ^ - type: 'C'
, P N2 n9 m# n( p - }, m' r% x2 p o0 v* a+ S
- })* m/ A2 J& X0 g5 y# Y+ @+ q
- </script>
复制代码
5 U6 l$ m. C) ]3 v2 iv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令+ P; R/ c) J1 F' B5 h6 M! L
- <h1 v-show="ok">Hello!</h1>
复制代码
7 a" @; e0 `0 ]) {$ |
; w$ Q( \4 l+ v' [: g6 \ d
. ?- v2 k$ M$ L6 i5 {) Z% h+ w9 s: J' _; O
|