|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">0 R& g; G' m$ e' g
- <p v-if="seen">现在你看到我了</p># b O0 F$ e+ H# i
- <template v-if="ok">: T: B6 ~; L( h# [% w
- <h1>菜鸟教程</h1>
. h3 R: A' ?. I - <p>学的不仅是技术,更是梦想!</p>
* f; a& O5 l+ z - <p>哈哈哈,打字辛苦啊!!!</p>, K- }& Z- U/ X! I- l
- </template>3 K; `9 P! u" \
- </div>0 z, f6 ]* ~, K
-
$ S( C: J0 O! H - <script>2 L6 W2 g* u$ j1 y5 r# L
- new Vue({+ d5 x: c! j* W. B
- el: '#app',1 N5 i6 _% ?/ G9 T$ A7 U
- data: {: {/ b. x9 }2 Z! M9 y* g, V
- seen: true,
5 t) m" i% Q4 i" J - ok: true
- l( w4 }% i4 ? - }
6 _( ^4 o$ U2 @4 R! h: N1 |* t - })8 n) I# W% [; D0 ^" s
- </script>
复制代码
0 G% t, \% W- K5 R' O这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->9 ]; [9 S: E! m- x1 u, k6 p& ]
- {{#if ok}}
' l7 m+ M; B. B; X3 ]8 N- i$ ] - <h1>Yes</h1>0 }: C2 ?4 j4 p
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 8 A- a& y1 l! G1 a4 r& E, Q
- <div id="app">: D5 s% R$ F3 U. P8 A& D8 k
- <div v-if="Math.random() > 0.5">
5 @/ u1 `' o$ E! \7 Y2 w - Sorry6 l' M) X& m+ E3 L7 O' w4 d# y
- </div>* e- K$ ^' i# \& u: `* ~
- <div v-else>. u0 s/ r8 |0 \, {" w, ]% U
- Not sorry) ]$ a4 R. H3 k+ ~, _/ `
- </div>4 J8 L* W$ f7 h: H" d7 i
- </div>
8 w$ {# E- G9 c/ `' ~ -
# n+ `9 l: k! ]# @ - <script>) b7 N( \6 D5 U1 X: [8 s- Y
- new Vue({
) e/ d5 A$ `' K+ ? - el: '#app'
% x9 a q$ Q# r( f% E0 N- z9 W2 @ - })
. k$ ^+ v+ h+ i - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
9 _8 q! r8 A1 w0 R( C- v- <div id="app">6 ?0 \+ x0 ^, M4 b4 w6 H
- <div v-if="type === 'A'">
2 _7 K# ]# L7 o5 p - A2 d ~ P# N* i; N
- </div>( ]* K7 [2 n& h' L3 i* t7 h W
- <div v-else-if="type === 'B'">% i V- R: K* }! M
- B7 S& H0 C' r% E
- </div>
- Y* t6 N$ e+ h( [; a( q' p& K9 n - <div v-else-if="type === 'C'">' ?& Y- I$ q5 Q* T0 p6 _( |
- C' A8 d" ~" Z' V
- </div>, v T+ p( Y8 b: C
- <div v-else>
! q. c$ K: V* }2 ]2 U - Not A/B/C
7 Q* ~. p+ G3 q X- ?! d - </div>1 q. o; ~/ y) \% s* _( G; V1 P
- </div>% F3 y0 Z+ {3 K1 w% w
-
- K& R' n4 W( m, P - <script>
5 b- E2 X( }* [ - new Vue({
4 f, \& @$ x& E, ~2 j! h# w - el: '#app',
K. D# j! {/ U. I6 z; ~: ]9 R - data: {
( T/ {( A k" d. l5 u! Y) d% W* E - type: 'C'
; l- Z1 }8 u# j d4 ` - }
( Q' W* M( A# Q) {1 r% n; m: b* r - })! i9 V" F5 E# E% q7 w- f/ `1 G
- </script>
复制代码
3 X! x- o( I& C. L' c; av-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
$ H5 |0 b( B2 R3 s- <h1 v-show="ok">Hello!</h1>
复制代码 % X$ [& u9 w3 `- ]5 R( ^
$ _9 E+ l& G7 g; f/ q4 y
( X1 F4 u8 G1 F5 J) r6 l! I/ v* d7 ]
1 `; q+ f( `/ u) E" Z4 A* W" \ |