|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">- Y. [) k" h0 z, c E5 Q9 S
- <p v-if="seen">现在你看到我了</p>9 f% u6 p" U5 u/ Y
- <template v-if="ok">
4 ]3 ~8 a2 |2 V% D: v d* h - <h1>菜鸟教程</h1>, d6 B+ ?6 }& F) v; A$ I8 ~
- <p>学的不仅是技术,更是梦想!</p>5 W/ W9 ~: r' D( O1 P
- <p>哈哈哈,打字辛苦啊!!!</p>
# D$ M+ I# ^) J# E - </template>) T+ b$ V" n! w: L6 }% @' N! ?
- </div>/ w) V& ]5 x: C1 r7 ?2 `
-
$ c# c$ {" z g) N8 ^! v5 l6 W8 B5 R - <script>- Y, P* w% f1 {0 g* t/ y5 `
- new Vue({
' t1 q- q+ o+ Z$ T% | - el: '#app',
, t$ ?- R: F* E( |6 X8 a' Z - data: {
0 b" \- i$ K6 S; T7 b/ G2 Q8 Y - seen: true,6 p$ I9 c ?/ \; H- _) k- {8 z
- ok: true
8 y- B2 _0 q5 x$ b I. m, x( d - }. o/ v2 y# t1 ^" T7 x0 M
- })
/ c/ X+ p8 {" Q/ q6 c$ B1 } - </script>
复制代码
8 ]1 h) k/ ?( [& v这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
) j: z1 ^* D( t4 h1 @ - {{#if ok}}" r; A" ?- M2 y) E
- <h1>Yes</h1>7 |3 G J+ o7 M8 }
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 2 b. Y, ~% K ?4 ^; y% i4 y
- <div id="app">
6 B1 _: F* w% P; b* l! J: v - <div v-if="Math.random() > 0.5">
0 m8 l6 {( l# W8 e% i7 Y$ w5 |4 I - Sorry2 B, a2 ^3 ?3 E: Z0 t0 c% u
- </div>8 @2 b! p. [/ B7 B e1 h9 g
- <div v-else>; { O n' H, e& ?1 Q' d- s
- Not sorry
$ {" r: U' \6 \+ Q" I% m# X9 ]8 L - </div>/ B7 w7 O8 L" n9 [- {
- </div>0 J! P5 e/ I( {( R
- ~/ e* T# V; c6 Y, K! p9 B
- <script>
3 t+ t! D9 v- z* @/ V% \5 M6 e9 r - new Vue({
5 @5 }, J4 @2 C! J1 x - el: '#app'- A% a5 L, J" x, o9 [0 o* K" u. i1 t g
- }). R" p8 `5 }. ~7 H. n9 T
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: 6 D0 o" L% o6 h2 u& q
- <div id="app">8 b, ~1 _# Z3 x
- <div v-if="type === 'A'">* E% f9 b- R- h5 b- f* |
- A8 \- o9 D3 I5 s7 y3 w4 G
- </div>
2 S2 Z {" g: X7 D - <div v-else-if="type === 'B'">
: {- T; y* n& ]5 n x - B& w+ e* L# Y7 ~2 G5 J, n9 ^
- </div>
( z; L$ Z# o' j - <div v-else-if="type === 'C'">" K) a* T/ f" G' q* s: C# S' C
- C
, X e8 e1 R% M - </div>6 |& O; g5 R7 C; M0 o+ p9 H' I; _- b! P
- <div v-else>2 P7 R, [- ^3 ]& a1 m' x: j
- Not A/B/C
9 G% A2 a4 {" l4 {* P - </div>- Q9 `1 @0 H- m2 m
- </div>
' o* _# r0 E* ~0 ?& `) l8 M5 s -
" V; }3 b8 L% b/ c5 { - <script>
8 a$ E1 U! S; i/ S/ K2 E' x; J - new Vue({
& D- R! l8 g4 \, }. S - el: '#app',
1 L9 C, @; f( U$ R* V/ y - data: {
5 V, E% q* m0 {7 I - type: 'C'# ^$ K# X: }/ X
- }! _# |8 f$ g0 l. b$ H' ?& a
- })
7 k' K+ r. l4 j( R - </script>
复制代码
4 u- d" |$ T) T" _* Nv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
' L: A" P0 p {0 Z- <h1 v-show="ok">Hello!</h1>
复制代码
, p2 L7 ^! s, }& R, E2 D( j' U! n3 Z& G4 y2 f
% M: A. T0 u4 \4 y3 n% ?) o5 d+ v& _
! u9 k4 K! \- b, b0 t
|