cncml手绘网
标题: Vue.js 条件与循环 [打印本页]
作者: admin 时间: 2018-7-4 10:52
标题: Vue.js 条件与循环
条件判断v-if条件判断使用 v-if 指令:
v-if 指令在元素 和 template 中使用 v-if 指令:
- <div id="app">
z/ P7 Y9 P8 n. M. N) @4 l - <p v-if="seen">现在你看到我了</p>
& O [' l' j& M- H! y: S - <template v-if="ok">
) U- y" N/ L |$ D! T - <h1>菜鸟教程</h1>" S% Z, ]0 r% ~( `6 U
- <p>学的不仅是技术,更是梦想!</p>
8 E& M2 c2 ~' O- V# H1 g$ G - <p>哈哈哈,打字辛苦啊!!!</p>2 t# m/ |/ ?; j
- </template>3 t X/ a6 d( A0 z% [0 k+ R
- </div>; R- w1 d! g& k
-
8 Q' b% J- W5 R H( a) L - <script>
# a: Q# [6 {! l7 d: s - new Vue({
% A. @9 o" Q( v - el: '#app',
* b! H1 e5 u+ k F# _ m# k* n/ b - data: {
& N9 D3 R9 ?* U; h8 Q* h - seen: true,7 v% b8 a3 ?; E7 B% m% M
- ok: true
# P& Q/ }9 \( h2 O/ i - }( b9 ]; W8 H7 D9 l3 S7 [# g
- })% J) L' d4 v# F/ A/ d
- </script>
复制代码
& n3 ]$ B, z6 t这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
- <!-- Handlebars 模板 -->
) k- e! V2 F5 d9 o- ^ - {{#if ok}}
% b) n9 Q* B* U, q# C* Z# V! @' Z! u - <h1>Yes</h1>& \2 O) p" j& H
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
5 P+ T: F' M; Z) I- <div id="app">
3 [. K; Z M( B% \' |) |# t* S - <div v-if="Math.random() > 0.5">8 Y/ P* j; ^, A9 V! `3 B) O
- Sorry
+ F+ q1 d6 |2 [4 q; T$ K - </div>
7 W& p, n' h& j( L1 v+ C% E# I - <div v-else>$ b# o: _) p; \
- Not sorry
& d b t0 y: ^ - </div>
: N' G, ~8 L& A7 u( B$ { c - </div>
8 E) [5 w# V$ n/ O( q7 B - 8 E1 g @3 }2 u6 `' B/ Q; X3 y$ x! ]
- <script># `( ^8 d3 _ R* C1 d
- new Vue({
) X+ ?# q$ I& p - el: '#app'
1 s& D/ e* G0 m; t6 r - })
/ z- J: A4 J _ - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令判断 type 变量的值:
! A$ F* _, [. f1 v0 Y- <div id="app">1 b: C9 s3 o2 z* P* A8 g- T
- <div v-if="type === 'A'">
; E7 Y0 T, {' S( S& x& t& e& p1 a' ]8 c ^ - A2 u4 _8 r/ z. r
- </div>% [" s# ^1 j2 c
- <div v-else-if="type === 'B'">
: V' @& [1 e' j- r2 X7 e' s* s* c - B; [( A/ k1 W% p2 a+ R& q; f
- </div>
9 D7 n. I8 `6 M8 `2 s1 X) u - <div v-else-if="type === 'C'">
) B! P+ b" {) L$ s; |& z2 ? - C
, O: J/ m* A) o, ~ w - </div>
$ l5 _ ?) t" ^ - <div v-else>
/ F- K) M' Q, v- N" v0 n8 J" R - Not A/B/C
0 h N3 f, i5 q& k7 a$ r3 t; |, s - </div>) |8 f4 r% @+ C/ S! X8 ]
- </div>5 H7 o! d B3 j* C4 m4 Q4 @
- & U5 Q5 k( v) s! z
- <script>3 D5 P; f. b9 ^
- new Vue({
& a6 O) J# J. I% s - el: '#app',
! G! K& w3 b: s w - data: {6 c- B' _( |$ `, l `
- type: 'C'
9 c, Y* G$ h- O) t - }
: u& [' Y/ J/ v' q - })
0 ^5 m* s0 J/ a1 |5 q - </script>
复制代码
, b, X/ [2 o- }+ { [1 t8 F6 yv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
) y( a$ P, p# Q; W; U3 K+ G- <h1 v-show="ok">Hello!</h1>
复制代码 $ s D, K; r% q
" T# |4 }9 G# U. {% h+ ~1 m
* U% K, z' s# L/ c; l" e' I
) A) s- C$ j- T; C) V1 A, W
| 欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |