|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">) F0 R: j7 d% b+ \- ~/ E; @
- <p v-if="seen">现在你看到我了</p>/ P7 l1 L. D" N7 a" ~2 A1 K
- <template v-if="ok">) i9 n9 B* Y* R* p. l0 k
- <h1>菜鸟教程</h1>
, Q/ i; S% L, v: s h; B1 J2 n - <p>学的不仅是技术,更是梦想!</p>! N' ]: u+ q" ?7 H
- <p>哈哈哈,打字辛苦啊!!!</p># } q+ Y7 b! g, v. L6 ~- R& B
- </template>( E1 o1 E- N' H; V1 X3 ~* ]* B; j3 b
- </div>
# Z Z* g* ]2 T - " F4 r4 y' O2 ~' M9 @8 P$ J
- <script>
; i2 a$ P3 P; e5 H8 H - new Vue({. n& B+ S% G2 |; I8 P3 x$ x
- el: '#app',/ Q* ~( K$ A/ x+ w* k
- data: {" I8 Q+ E' [) j5 p1 E0 r8 S
- seen: true,5 A. `5 l1 J0 E% Z2 j
- ok: true
$ E8 E" {" E3 l - }; _/ k1 o2 ]* I. o8 w8 Q
- })* O( n' d' p, H& F+ }; |7 c/ x
- </script>
复制代码 * x' U' `: s2 C" B5 J9 p
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->1 i2 O0 E: R9 d# K1 f
- {{#if ok}}8 d4 M; W5 w' ?; S, N6 q
- <h1>Yes</h1>% y0 V, }# y% E3 L$ ~1 h5 q z! r
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
4 N1 [' w$ f7 L. G- <div id="app">6 A6 m$ l% J1 x% ]# J: X. T
- <div v-if="Math.random() > 0.5">
# X0 a3 ~) _ e$ y - Sorry
) t: J3 E: ^- a6 W4 k% d- r - </div>1 D; j6 w9 v9 B! s) n$ I0 }! ~7 S
- <div v-else>' a! m6 C- H) e1 t7 W! Q
- Not sorry$ T% H" l% [% }" D
- </div> s6 ~9 H p0 J8 F9 e" x
- </div>
: v6 ?6 T5 f4 w5 L+ C3 t, f3 X -
/ {/ w# }* N, n- f - <script>" b& H4 P' o' C* j4 k5 c% f: N7 V
- new Vue({; `* ]/ q* E& d" z8 ] {$ H5 j
- el: '#app'
, S" y/ E$ B% I! k: e* C" ?$ _. T - }). D' t6 m% i5 B- ?0 N
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
3 d, t7 g' u# ^- <div id="app">
9 m3 F& |! Z9 f4 M! |) {& J) q - <div v-if="type === 'A'">3 a$ A% v3 y" @- W8 r+ f, t" @! J
- A
% o( g9 _' M2 X1 ] - </div>
r$ L9 s9 c4 d& S - <div v-else-if="type === 'B'">
6 p; M) e2 E& {& q+ J - B( a( Y$ t0 C8 X( K9 G
- </div>4 w6 X! r* X7 |
- <div v-else-if="type === 'C'">
0 X, f8 c! J- Q9 X - C
' g: U4 n: M6 _# t - </div>, `2 \/ ?/ H! \+ I' S# [
- <div v-else>
( w3 v' v$ B2 M( m7 m( x7 b' v - Not A/B/C$ X2 O% x" @2 L
- </div>
1 P; R1 ~6 l& b1 G* \8 j& Q0 P - </div>! ?3 N( F" [6 Q$ v) m
-
- I% G/ g, [& s' k& P - <script>
6 {! m1 n W6 k! l" K4 u - new Vue({
1 D' G* e' M* I5 Q( h" k - el: '#app',% A0 U9 T- ~! N9 q) ?
- data: {6 C& I1 B/ k$ k D6 I0 O4 D* q
- type: 'C'
! B9 s& ]6 T s0 s: t - }% {+ q, r& H6 H L# j5 L: U
- })0 p9 D) r ]/ e7 V! X& J
- </script>
复制代码 ( Z2 e5 k" v2 H8 C% w9 v' T( ~
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令 }/ N9 Z, g2 }% ?
- <h1 v-show="ok">Hello!</h1>
复制代码
6 F: Z$ {& k7 P. I) O1 a s
0 x" D0 N: Y* `" q) v% h; t. g' K3 l. N# ? ~6 R' j
! g1 Y$ D2 s& ]0 j. A- ?6 B2 ` |