|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">' o0 Y9 p6 w) f7 m& s8 ]$ U, u
- <p v-if="seen">现在你看到我了</p>; K7 l, F4 m; N O8 ]1 c4 M
- <template v-if="ok">
/ j" h+ R7 G3 j! @ - <h1>菜鸟教程</h1>1 b, U4 u" B1 Z# y3 h
- <p>学的不仅是技术,更是梦想!</p>4 T4 s$ D$ J, X5 E! @) v
- <p>哈哈哈,打字辛苦啊!!!</p>$ x: u; I, F. F
- </template>
8 J' V& a: D; g, Q* o z - </div>7 A+ ~+ I/ ]& O
- $ f7 I. M. G( [% N; k& b( C
- <script>5 f7 {# }$ U' T7 a3 ?
- new Vue({
( E1 { f+ c0 E q' b7 B - el: '#app',
2 ~3 }% A0 E0 m6 }4 g! d - data: {8 ~: j; Z R- w, k8 V
- seen: true,
- y0 R0 }# j0 _) |: H7 Y, M- K - ok: true/ y' @5 [% a7 Z. F5 Z) h: k* M
- }
# a# M" A# b. F2 g9 q - })! G& y1 d! r6 k' f# X. i
- </script>
复制代码
H' ~) e) b& A这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->$ x; f6 F# I3 j' H9 \0 ^6 f2 m
- {{#if ok}}
' Z2 s' F& {" ?4 D. y0 Q; b - <h1>Yes</h1>
" R9 x4 v' ]; K( `3 K* T5 l# E - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: ; P! g) Y2 j% f- e+ |7 _; u
- <div id="app">
' ~$ H# j; u6 \9 R) _ - <div v-if="Math.random() > 0.5">
: ?+ @, [+ M) Z- p! H7 C - Sorry6 i" A- F" e6 K$ h; T
- </div>2 u/ Y; ]& x1 D" R/ L$ ~+ f
- <div v-else>0 J8 n1 A+ f" i$ Q3 h; W
- Not sorry0 w) K1 v/ A& u9 Y9 Q
- </div>
" u- B8 r/ S8 z7 w - </div>
. Q2 Y; H+ q5 f2 R& { -
* d! _" K Q9 z6 P - <script>
6 A U4 Q8 k3 W. b5 S! R - new Vue({
# s7 b. p- B, e2 k - el: '#app'! C* Y7 f) m6 y/ m- k: D
- })) ~; Q: {0 K' D$ q
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
8 W6 W/ {! I$ B$ X% J. u- <div id="app">! a. P% U8 ~$ D2 U3 [
- <div v-if="type === 'A'">& @: z3 s1 P1 z4 I' m2 U
- A
3 C2 k6 o# Y. Z2 Q8 y - </div>
2 x8 k5 W( r' U Q+ b6 q) \! s, M0 i& O - <div v-else-if="type === 'B'">
# o. _) [3 P( e2 x - B
" P5 A3 x4 Z2 u1 y$ x$ l. b/ P7 f - </div>
/ f. j# H7 x: J& l4 `3 j - <div v-else-if="type === 'C'">
, }8 H& w2 B; k" V, Q, S' { - C1 G/ ~/ d. G8 z; ~" i* M- \
- </div>
& w0 G o+ w6 ]" s, n: A4 r - <div v-else>% ^* k& h- e+ o, T1 ~( V( H {" _# [
- Not A/B/C
3 Y. U7 r" `# Z2 X' y. |. M - </div>9 D6 R. E& l2 \+ w; q
- </div>
% }$ k) J% V1 K) r - ' ]6 \1 C. }+ }! ~. n R
- <script>, c! x4 e; z. c1 @( G* O/ Z
- new Vue({* ]$ k; A, }' N) z4 u6 w& {, G3 B
- el: '#app',
9 r# P1 f$ D ^9 {2 | - data: {
) P# m# U2 s& [. f1 J - type: 'C'
# _9 W7 Z$ c4 B0 H7 O& |0 Y - }% ^7 I& G. m. G2 u
- })
" f; n1 R+ u5 l" L { - </script>
复制代码
& Z9 ^' v9 o- L+ c$ fv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
3 S m, H' D. F- <h1 v-show="ok">Hello!</h1>
复制代码
# z r+ q: M7 V+ F% o5 r' M5 I* Z8 w* b" E! _' g$ i
. ]: ~! r$ l4 {3 O3 G$ Q
1 A9 G" j+ w, P, j( r) h- U
|