|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">5 P5 |: Z* V' Z5 e
- <p v-if="seen">现在你看到我了</p>: F1 I# D2 D) Q3 @( p/ w1 K
- <template v-if="ok">; h' e* P% a7 J$ E6 h% a8 |2 R
- <h1>菜鸟教程</h1>* t2 A$ Q1 k0 M! a: w
- <p>学的不仅是技术,更是梦想!</p> [* g2 U- c: ~0 D
- <p>哈哈哈,打字辛苦啊!!!</p>
1 U% z4 Z* v) l! |2 j6 @; v - </template>
3 f' z8 K/ }6 T: j8 Y8 {8 r) p - </div>
: G7 Y# b; N7 P+ X$ u6 {4 D2 n7 s -
9 M |. |* h& @& e0 W6 D$ d - <script>5 `4 E" C' P4 ~( h$ \
- new Vue({8 `, j8 P8 R" O; o1 H9 H
- el: '#app',
[; g" d6 V9 b& H/ i T - data: {2 h# u( {4 R' f6 `% Y9 B
- seen: true,' U; D$ B! g( ^+ a3 {. C
- ok: true
. \& ?5 q1 J+ l) `+ g) ] - }
9 l3 m$ Z& s: V - }), e# n, T$ `/ J- F6 v
- </script>
复制代码
( ^" L; k5 N' R$ d- c/ g; C这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
( I$ F& J: m6 J3 ^9 u- U( z - {{#if ok}}
2 u8 z0 Y2 o' c; V) d" y: F; ` - <h1>Yes</h1>9 o: A) \+ D. N
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: + g5 Z, P3 I$ r8 V
- <div id="app">+ w% k1 Q8 w& Q! h0 C1 b
- <div v-if="Math.random() > 0.5">
% u5 Z p# n* _: A" `# [+ A- J/ j2 L b - Sorry
8 j6 J% V! g# _; a- X C - </div>
4 }/ a; {! p6 |) G+ g8 K - <div v-else>
s% w1 @. D' e, c; \1 ` - Not sorry }0 |9 A: F( |- g7 k, ~* V
- </div>
. t( {9 @$ K9 e$ A* d - </div>; k5 p! S% Z. Z* C- Y
-
4 f1 r) e3 u# ] - <script> s# s. @& b+ @ p
- new Vue({
3 A5 L, i2 b0 S5 D3 k. v - el: '#app'
, k- A6 p9 Y% V - })
; d! [: U$ T9 }1 g - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: ' D, A! W+ O# i( V3 Q8 M; ]
- <div id="app">
. s- l7 {' L4 C0 x( h - <div v-if="type === 'A'">& \6 f( f+ C' r( m }
- A' R% Q* s2 O& g& ~ M
- </div>4 o: u. v$ V/ U' n$ ?0 M
- <div v-else-if="type === 'B'">7 s1 q# P' ~& j7 k+ b
- B
$ D, W) Y. w6 ?) G" t - </div>
5 G# R* y& F: q, {) r P0 l1 v - <div v-else-if="type === 'C'">
" ]$ j5 p/ G1 g% E: |' O - C
8 V+ Q2 k+ D2 n) C, c - </div>5 H: o" p3 @/ \# y- j' {7 t. ^
- <div v-else>
J" M J9 E* \. Q0 E+ C4 G \ - Not A/B/C
# C7 G v# J' V/ @7 Q2 Y+ n2 L - </div>
' F; {% L! Y3 @$ J! ?" I6 S- r - </div>& {+ Z; Y. \3 Q5 Q
-
- B# |7 j) C, v( s8 _! Z - <script>" B1 b3 W" ]. I5 Y
- new Vue({
, W, h# z5 p8 D2 c% Q( s2 { - el: '#app',+ d$ F; ]# Q& U
- data: {
/ f' R9 f1 B' j' M$ k: C* _4 x, f - type: 'C'
' ]. A7 a$ ]" y& m - }
4 [3 t! |$ I( | ]9 t2 o9 d. m3 R - })
1 |- @! U- g; K% F5 ~& | - </script>
复制代码
+ y: h- y% W# S* T$ yv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
M' e! `" W* {- <h1 v-show="ok">Hello!</h1>
复制代码 , @7 ^6 }* w" d! ?' @ n
/ m5 K2 k% P4 d. a2 ^0 N- C5 W& _5 |- i6 g3 z# O
* u+ z, B M/ ]& Q. @" F5 b3 l
|