cncml手绘网
标题: Vue.js 条件与循环 [打印本页]
作者: admin 时间: 2018-7-4 10:52
标题: Vue.js 条件与循环
条件判断v-if条件判断使用 v-if 指令:
v-if 指令在元素 和 template 中使用 v-if 指令:
- <div id="app">/ ?/ d: f/ F/ ^
- <p v-if="seen">现在你看到我了</p>* Z; E8 ]; q6 m3 x- {5 M- Q! e
- <template v-if="ok">& r' |0 a& E& ?( S# o% Z
- <h1>菜鸟教程</h1>3 O9 `* p" K" W6 s$ ~: B. l
- <p>学的不仅是技术,更是梦想!</p>4 r. {, [& ^! \8 b$ p# C
- <p>哈哈哈,打字辛苦啊!!!</p>
) h$ S1 ?* O: r7 D; \4 W3 u4 { - </template>
' O! Y0 V. t0 U; J+ f! D - </div>
( A- H; v% h4 {6 `; ?. N - 6 O, G4 ]( z) M3 u
- <script>
+ ~* W& r2 c6 u" [- a$ A& g0 _5 h - new Vue({; S. ^$ M0 l! w
- el: '#app',1 u. }6 M+ e. o8 x( C3 y7 A$ d
- data: {
U4 N9 ]7 Q( n6 k4 G - seen: true,+ D) d! j5 M& H. L( L
- ok: true
% y- s" Y# e, h$ |! {6 u& O - }$ } B. c5 v% ~; \- z. I+ y& a1 z
- })2 W& p0 p" _% ]1 w& A
- </script>
复制代码
1 T6 r& h, X( W! o/ M* g这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
- <!-- Handlebars 模板 -->- [2 Z' d; `! i5 `
- {{#if ok}}
1 _7 _( ~# s5 h/ M0 \1 ] - <h1>Yes</h1>% t9 ?8 j" m( Z! R4 d) g) W
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
* N% \3 H" {- ^- E( V0 ] B- <div id="app">9 _3 v' n- F! X& s3 h
- <div v-if="Math.random() > 0.5">
' m& z, i- w" Y3 @/ i/ B - Sorry8 B y7 q5 |+ P/ n: K8 C
- </div>* ~: }: m& R$ p) v. H! U) C
- <div v-else>$ J/ O! Y' X2 H
- Not sorry6 g" |2 ^1 _6 o8 L+ n
- </div>* k1 w+ D% G& o1 r
- </div>
5 T7 J8 T' B: z; H- x9 g -
2 Z& L, O- v6 a( L7 Z7 M - <script>6 R/ Q" X3 Q- a* n# X% D. D2 B
- new Vue({/ |8 v8 k# R3 s) Y8 \* \; `2 s6 ]
- el: '#app'/ y& X1 J: v2 {6 M8 l! K+ C5 {( A
- })
3 m- ]9 ]' R* F$ q" F - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令判断 type 变量的值:
3 g B, b+ T @* P0 m
- <div id="app">$ I1 o4 V, q3 U+ \( ~. h
- <div v-if="type === 'A'">
2 D, L2 D \2 S0 f" L! ?5 D - A4 A( V& N. F! E2 A0 R, }
- </div>
1 c6 Z3 I/ c% i; ~8 ?+ k0 | - <div v-else-if="type === 'B'">
9 j" B0 D1 T' Y& k, P - B
' m" n3 `; X2 g - </div>$ X/ Y0 s5 X* H) f. M
- <div v-else-if="type === 'C'">
3 \- L. [: j( q4 G; x - C( e0 j, G9 I8 H w2 t
- </div>
: g7 F* X6 t( m. u - <div v-else>
) A) S. Z2 ?. w( c! ]) B - Not A/B/C5 C9 \1 C. |" W5 O
- </div>- e* k a; x- q0 ]. O6 u* z& m
- </div>
' A6 R" z% @. A& {. M -
' j& T( n6 d6 m" k7 n) R( A$ Q4 R - <script> e7 C& F5 i6 |% J8 g$ Q
- new Vue({$ r% s4 W v1 v8 B3 R( X; R
- el: '#app',
8 H/ y" `9 V7 Y' ^! Y& q2 \! ^ - data: {
1 a, _! t0 y5 a4 o8 q - type: 'C'
' I+ P( V) k2 ~+ k; W4 s - }5 D e! C/ ]" Q1 O9 U" f
- })9 Z6 u( m" b2 Z4 E
- </script>
复制代码 d* f& N' [$ ~3 s, S! {
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
- f- A- t3 I! R* P" P, f; p- <h1 v-show="ok">Hello!</h1>
复制代码
1 Y' K- n+ G& G. Y/ j; c% o- `. w
, ?* Z$ m4 m2 t# ]( m/ x7 Q( b8 e
/ z/ ~+ n5 @' O" y
| 欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |