|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
2 X* D0 d1 U5 _$ B$ `" N - <p v-if="seen">现在你看到我了</p>) w; Z# |9 w, |* p3 I9 G: q) v2 ]
- <template v-if="ok">
$ G" Y3 X8 X$ J! J% o& l4 t5 h" V+ J - <h1>菜鸟教程</h1>
6 ?' q3 o# c/ q7 u6 a* x5 U - <p>学的不仅是技术,更是梦想!</p>
# ~, _. a: J' O. Y7 e( E8 D4 x7 d/ ~ - <p>哈哈哈,打字辛苦啊!!!</p>6 W) R5 `" Q4 B0 F# \* S/ A0 f' B
- </template> N% o* Q. w) F' p$ M3 [0 z
- </div>: x3 z) ?' R: G8 X- [0 {& |1 Z
- # J3 k1 ?' Z S$ P5 \
- <script>$ b) ~2 k4 q7 ^
- new Vue({
5 N, c5 _. k, s* H - el: '#app',
/ K( w+ O) x$ B5 K2 G$ {/ F R - data: {8 T0 p0 Q; u5 b" F+ I' ~
- seen: true,
|) X4 V* z, c$ H( Q1 a - ok: true1 A, G' m: U* d! _ `+ A' Y
- }! d$ k9 H/ [2 V8 x4 B4 v9 z9 p5 v1 q
- })
6 I" {+ @# g- y - </script>
复制代码 1 R& q7 p. K6 A! v( q
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
f/ E1 B d) S) ~. n - {{#if ok}}
, H$ }, B0 P. i; A! g' p - <h1>Yes</h1>) l: A1 s) h1 P$ ^* Q) g4 ~* h1 _9 G8 f6 A
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
* i; C, b+ ` Z' w+ {( T" |- <div id="app">+ k f9 E2 N+ ^- N8 a
- <div v-if="Math.random() > 0.5">0 E( A( I8 k s4 w3 [
- Sorry
) O' w, P0 k0 U, W - </div>
; ~0 P: D) V$ |% C3 y - <div v-else>
1 L# B7 ~% q8 S j" q1 n - Not sorry
: G+ Y7 c- {) x, y9 W - </div>
) e7 W% o7 O1 R3 ~4 Z - </div>4 j7 K0 z) e# W6 P* v8 D- h# @& j/ Y
- 9 q3 \% v$ U2 Z5 j
- <script>
8 G: |2 {+ v8 O: @ V* q - new Vue({
5 q) J; w* J3 [4 I2 s6 G - el: '#app'
( Z) X) H& |! c - })
# P' m0 A4 Q2 x6 F5 S - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
$ F+ M8 v5 C) C! ]. S4 I8 i* f6 v7 |- <div id="app">
+ H0 N8 D5 k0 t3 \2 p! J" y - <div v-if="type === 'A'">
# l% {) b; h5 j4 I - A: H4 w2 a5 _9 Y: M4 A
- </div>
! v# ^% g3 Q1 a2 ? - <div v-else-if="type === 'B'">
7 C! p' t( h* P# R& L G9 K3 k- ?/ A8 Q - B* z- t, r6 a8 i9 g4 ]
- </div>
7 B! ~2 X- t2 b& J) r: w - <div v-else-if="type === 'C'">
" B: R* A+ \+ j8 R% H - C
' }; ?7 e- E- O6 o o4 {* F - </div>
3 I- l4 e- ]* w Q& ^. H - <div v-else>
/ \! O0 U2 U! X# f - Not A/B/C
9 W& }; L |, c& l: A4 M( F - </div>; s& c0 _3 s& [* i* v5 }; J
- </div>
8 c: v" f- F" S' j* c - " m" D. D9 w; O0 |! a
- <script>- o; [: w7 a3 P- {$ {
- new Vue({
6 `- L* M# x$ |! f - el: '#app',. U2 A A; s% `& A2 N0 c
- data: {
& \" g* l0 V( v( C% Y' x! o - type: 'C' H# l4 I- K; F/ _ A1 p
- }( U1 I7 Y% r/ _; R
- })
5 \2 T# r8 c' h5 g - </script>
复制代码 ' C& w' n/ l; P- ?4 }8 w( b
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
, o- O! T. W! ~' h; a: c* W* {- <h1 v-show="ok">Hello!</h1>
复制代码
% w+ s; g. K6 {' J- Y
# L0 R* T, P$ V' V8 N! |7 w4 R% X
! y9 c& l8 w# _' e r+ P! m! Y) a
|