条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
! Z+ h' Z' \1 ]1 h) P7 A: B - <p v-if="seen">现在你看到我了</p> f& l( R* E4 o& S$ _1 J$ J
- <template v-if="ok">
' ~& S5 m. I, I9 ~# b, P: \ - <h1>菜鸟教程</h1>
/ I: d8 P& A1 @1 V$ e2 }$ C# D - <p>学的不仅是技术,更是梦想!</p>6 {7 D8 X8 C/ e$ s
- <p>哈哈哈,打字辛苦啊!!!</p>
* l1 V" h- M+ t Q; o3 R A - </template>) z& @8 u3 W# i* w+ h. b% \9 \
- </div>
% H9 S% ]3 w4 s3 P - ( t, j- l2 [! t# O
- <script>( C7 e3 y: l6 c( y7 _0 R# g# u
- new Vue({5 O) _ D# t) f5 u1 Y0 s
- el: '#app',
7 m! X+ k5 m" ]0 K2 z ^ - data: {1 K* F7 P4 F" ^; f6 ~4 M
- seen: true,# n) X- P( z9 M. o0 j( E
- ok: true
$ I3 Y6 i8 ^8 ~7 q* t- f - }* @& E* f( w0 z3 k# [# G5 X$ _
- })
6 ^' O. j7 F @9 {; ` - </script>
复制代码 9 _! u9 n2 M4 Y1 @! t
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->5 H; Z5 B/ ~ O$ R9 H
- {{#if ok}}
1 ~6 y) A- w) f: Q7 ]/ F; E - <h1>Yes</h1>
4 v' F9 { r0 v! ^# O0 M - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: ' }# o; b6 t% d
- <div id="app">) u: y- w! \$ V! ^" R
- <div v-if="Math.random() > 0.5">/ \. t* N" M* p) o
- Sorry
+ Q9 e) ~9 ~9 L+ b- g5 u/ A9 P - </div>1 N6 l& ], h( v# R1 a, H
- <div v-else>
: J% l3 d& o8 W* Y6 R0 ~- |, | - Not sorry
! Y% m( V4 w! H& r. F - </div>/ h' |3 M1 @7 x$ w9 b' I
- </div>
N8 O( V7 B& D, a -
( ?4 ]9 c8 }# Y7 D! L5 J k1 ^" s+ i1 { - <script>
' i" `. d& @9 T! }. ` - new Vue({3 [. A, d1 ]# m3 H, X; k, F
- el: '#app'/ e; V( W/ M, K o) c& b
- }) z8 m- h$ t9 T# ^2 }2 i
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
- e/ W+ |* K2 A- k4 _* c- <div id="app">
+ T/ ?' ~5 P8 Z# L0 Y3 o - <div v-if="type === 'A'">
3 f( `% b, u% {, b- y& _ - A
/ \" z* c5 \' r8 f8 r% O3 S) @, m2 \ - </div>
- ?5 a! V; b9 Q7 x9 m; @' j - <div v-else-if="type === 'B'">
4 r; `. T4 z' c1 b# p, l; F) \ - B
) q+ z; d$ c6 r6 v0 h- A5 I - </div>9 y0 `, {" o7 H; _1 k: S
- <div v-else-if="type === 'C'">$ S% c) p. v9 ?: g2 o
- C
! q1 z) Z/ ~6 n - </div>
$ W7 Z) |( Z, K2 c$ n - <div v-else>5 D* C8 J5 P0 f) x
- Not A/B/C
: d7 O7 C6 n% q - </div>
9 C: m: X- E- q# z( V( B - </div>& m' W7 `5 n5 _
-
( o6 p- w3 g4 E$ W+ o0 {5 }4 j - <script>+ @1 E- q& ^6 }, p: w6 G" E
- new Vue({
. g7 ~5 [# z; E3 H3 L$ Q) u I - el: '#app',0 l8 z9 A$ m. C
- data: {
% B% z3 O0 p% X+ V6 H1 J, A7 v - type: 'C'
% `/ ?' J7 y# v* n( @( H - }5 p2 f- Y# ~4 j5 |# ]% J
- })" J5 ^- `) r* Y) b4 p4 p; X+ X+ e
- </script>
复制代码 8 x3 s( }: w. i N
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令 L. _# r& M& p
- <h1 v-show="ok">Hello!</h1>
复制代码 3 w$ x/ p, y2 y
. |% L, o5 t9 ]; w2 O7 ~. {& [6 E* j% Q
- c- p2 ~3 _8 P
|