|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
2 l, a1 }# |& e/ X. G - <p v-if="seen">现在你看到我了</p>8 e) r0 d" w0 l8 Q F5 H7 {
- <template v-if="ok">+ t" P3 l1 ]3 ~* @8 {
- <h1>菜鸟教程</h1>6 H- t) p4 F2 p# H& Q
- <p>学的不仅是技术,更是梦想!</p>
) H8 }+ O" t/ `+ r" e+ O - <p>哈哈哈,打字辛苦啊!!!</p>+ b! Y, U& V6 S/ x4 s- |: c& s/ q
- </template>
5 A. D% t0 v* i; Z9 F4 D" B' E - </div>
6 l: L9 F; Z3 a. ~/ ~$ b -
+ e+ J. C" n) X2 _* C& d* E - <script>$ Q0 r/ C5 u8 x4 C
- new Vue({% r5 l* K/ \/ a1 b% |' E3 Y* _9 M
- el: '#app',, ^+ [$ o) p; y
- data: {
8 [6 ]/ \3 V" b0 w& ` - seen: true,
7 x8 u3 y* }& l6 P$ c/ r1 q - ok: true
: E3 B& u8 g. l4 e: Q' L& s - }
9 ]3 M! J0 b1 L - })
4 ]6 ?5 s; C9 \- P- L - </script>
复制代码 . W8 T4 |8 X, Y3 [2 |2 s( }; J
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
9 ~5 G) b5 K7 F6 O3 z3 I - {{#if ok}}
4 O+ ^. q1 T1 j. e7 c* k, G - <h1>Yes</h1>
' o' B# z1 x4 y) H+ l* i - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
- {; W0 j) B3 `+ Z" h5 O" ]! `- <div id="app">% Z! ~' m7 j+ U/ B
- <div v-if="Math.random() > 0.5">
4 s0 ^% Y1 r- O, [0 v9 K& i - Sorry& E& w6 n$ b* [
- </div>9 A. H9 A! z0 Y$ q2 V3 T
- <div v-else>1 K) R7 ^- y" s! V
- Not sorry: Z# a/ P- L3 [: a
- </div>; b/ v6 O% g% b' p& I
- </div>
4 r: S1 h- N; v7 C. z -
4 {+ t2 y# n7 }/ R; | - <script>( \* E, h' @6 s
- new Vue({; s e9 E0 A8 ?1 L6 e( n
- el: '#app'
- ?) h" h( o) u6 a9 M3 p - })$ g# N, n7 `( h) o: k
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: : r! P9 P1 o P# N
- <div id="app">; p. m2 I% ~3 ~( V4 c
- <div v-if="type === 'A'"># L) ^! j8 r% B- i \. G# o5 R
- A
4 L6 Y6 h, A- ] Y' s A4 r - </div>
9 [+ G, _, ]0 d6 L/ a6 x* M - <div v-else-if="type === 'B'">8 Q( F1 N ~# C. g3 E6 U" R6 ]5 G
- B9 {' m; h N5 a1 N
- </div>
: n' e% t) x$ M+ \7 e) M6 j. x' X - <div v-else-if="type === 'C'">& V( u# O e. P* ~
- C
1 M1 ?' Y5 u" y, Y, B: J/ E2 N1 @ - </div>
9 S' c1 S4 N, C; D' I& W+ x - <div v-else>
5 j- @( N4 i- z7 R' X - Not A/B/C* A/ @: q% V8 Q9 t
- </div>0 d7 Y; Z6 z+ q u$ M# J2 i, f
- </div>" N6 Z4 @7 [: g Q) x5 u7 n8 s
- 4 a v# t. T) e8 ~$ U- |
- <script>
7 b, g, T2 ` \+ _( Q3 f - new Vue({
% s! v7 D/ ?( P; \ - el: '#app',
7 s8 s) F$ H- }; x1 S. M1 @ - data: {3 l: u3 Q' s: e4 n5 T/ O
- type: 'C'
! S% \8 N4 e4 Q - }
" ^! ^& C; P3 h3 ^ - })
' \/ }; X& X5 i7 E: e; ~ - </script>
复制代码
0 ^5 _, w* I9 v9 g, A# O4 t6 gv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令- L8 m3 r7 _6 Y3 ^5 ~ p
- <h1 v-show="ok">Hello!</h1>
复制代码 5 G" M* O( \; y9 R5 R, F# b4 [. w
* W, }1 d" o: A' T8 H) ~; F" X* T
' p) }& P! G6 \2 S% X3 F
( {; ?% Z/ f5 J4 d& q0 W) d7 a6 d |