|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">- {' f. y! b* J3 _
- <p v-if="seen">现在你看到我了</p>! ^; a* Z% J3 o9 P7 [& q
- <template v-if="ok">0 Q' K7 K3 i {5 j2 |3 O8 [0 O
- <h1>菜鸟教程</h1>
$ O! t; \, l( x; @; w* Y3 q* [. } - <p>学的不仅是技术,更是梦想!</p>
5 a6 T3 b ?' P; p. Y& n0 v. }: h& s - <p>哈哈哈,打字辛苦啊!!!</p>
6 R; E* Q$ z/ x/ S - </template>
: G q9 \" E( k8 C - </div>
$ `+ [8 E" L& C9 x U -
8 p; F% ~ C R* R+ @2 g - <script>% F4 g% }2 ?4 Q, s: u/ C! ]
- new Vue({
0 T) E5 I% g% B( g' g9 w0 o - el: '#app',4 a5 @8 `! Z4 B7 D" q( D
- data: {
5 C. d# Y3 l b6 u( {& j3 L: | - seen: true,
$ H; N3 D# x. a9 r7 j% i$ i - ok: true
/ z* R! `* ]9 j8 n7 e; s w4 U/ x - }
- }& U) W8 P5 S' T; b0 j. B) F - })1 i0 M0 P( A0 Q3 j' d9 X5 c
- </script>
复制代码 . { \; ^# b h8 o; P
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->7 D0 C: [* c3 q: ?$ i* w
- {{#if ok}}
8 q" N% t3 c2 O3 T$ Z - <h1>Yes</h1>
6 J' |0 q8 t( B9 W. O - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
" w# @! S b* z* _8 q- <div id="app">
0 L F5 l# g4 l - <div v-if="Math.random() > 0.5">
9 U8 U: X' I2 y m% } - Sorry
7 c$ n3 J" t+ v" h - </div>
6 N- A6 E+ \7 d! \0 x8 f - <div v-else>
) }: @+ g) a* I - Not sorry5 `7 q7 f# z: |* s
- </div>! [5 ~! g- F$ h/ E# J/ d
- </div>, M; S5 ?4 S( j% G: T
-
! F4 I$ E1 D7 p+ F1 D! k- M - <script>
( h" ?) [- s- U. d7 V - new Vue({2 X, E# T# Z! R9 e5 A
- el: '#app'
( D# ^: o3 B: V2 n+ q3 w5 D) v - }) Y( M3 d/ F: \$ ?3 t7 Q$ {% [
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
k9 [# y, G) G1 r! f2 M0 k& d- <div id="app">0 |6 @3 B/ \, ~6 Q% s
- <div v-if="type === 'A'">
3 Y. b6 v) b4 f! b6 _/ [, s - A3 d. I) H! H g2 f- V
- </div>' M: A" J3 w: W, f' p/ }# e
- <div v-else-if="type === 'B'">7 K; g9 h! P0 A& d' E, E* J. [
- B P2 F; n- q; `
- </div>
# o7 l5 A) B; }8 _ - <div v-else-if="type === 'C'">) v: S( ?3 ]8 p" r% ]$ s3 z
- C" l8 H$ R1 P/ w; E
- </div>
% b+ ^& J, O1 M% R - <div v-else># C0 B8 l3 w" _2 q
- Not A/B/C8 o w' a# T2 y5 w
- </div>
9 N, a' R# O$ u- R: x( K1 k" s- D - </div>/ [; n2 ~) `: X% t
-
& c9 z4 _! ~! ?1 n- c, ^% w% L8 ~ - <script>
* `( D, k. l; h6 Q% o. g - new Vue({/ h, c& k: A6 | l! x% ^ J
- el: '#app',
" V$ {$ ]6 h7 b1 y1 u& w2 o - data: {
6 a- @( D: _7 ~* j - type: 'C'- w5 q7 M$ `& a7 h
- }1 J: O9 w/ Y' U* p% S9 o; }
- })! h% m9 X5 R/ s! U
- </script>
复制代码
3 g0 Y9 V; S5 h8 |, R, E* x* I7 Mv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令3 @! G! {! H: I! X9 {" r6 _
- <h1 v-show="ok">Hello!</h1>
复制代码 , F8 o6 G" _/ I+ K. y$ U0 q1 ~
8 {, v% [# b& b( i
& |0 }+ @0 G0 {$ j _: D
% d, E' |( a/ v W$ J |