条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">4 m, m, o' i) I, U" v
- <p v-if="seen">现在你看到我了</p>! J6 L4 E! R. H* h( }
- <template v-if="ok">
- N& {1 z/ _# l - <h1>菜鸟教程</h1>; R8 M7 D9 h5 Y2 z' m r% [
- <p>学的不仅是技术,更是梦想!</p>2 t. i; T% c# {; g
- <p>哈哈哈,打字辛苦啊!!!</p>
0 p$ d* \( e9 @( u7 o9 X# h - </template>3 X: s6 W- V+ V
- </div>
* F1 W9 C3 |' ] - : l0 k8 r( L, H& q1 g" i; V' f( S
- <script>
: q$ @( }2 O! | - new Vue({
& S8 y( v) [1 @' H - el: '#app',' a4 [7 e" F; T8 n' y7 ^( f
- data: {, r1 y& Y. d7 `) i5 r
- seen: true,$ Z+ I" s4 @" A" u& L
- ok: true# M/ D0 m- I3 V5 G( k( g
- }
/ S4 \5 T& a5 T* I! m! A - })
+ L* D- j4 F U; Q; J, I - </script>
复制代码 % p, F8 a4 x7 Y" Q
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
{5 A" ^9 y0 ^5 Y* [ - {{#if ok}}
$ y, x6 Y1 [ I @$ L5 D3 @! y - <h1>Yes</h1>5 y) b+ r0 R# R# _4 g( X
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 5 U9 ~! P5 S% @4 w4 D
- <div id="app">4 I; R8 `" T' `3 i% W# b' x) z6 V
- <div v-if="Math.random() > 0.5">
7 `5 ? r! Q% n# Y4 r - Sorry
* L0 x: g* L. A% \9 m7 F - </div>
. v. S) r6 G' h# g" @ - <div v-else>
$ y& `2 C. m5 K9 l( l$ X - Not sorry
- _0 C/ T# {: v& n( ^3 P0 d/ F - </div>! b7 I' @( B" D
- </div>
4 m. Y) d. N, p" n. X - $ O S" P& R0 n
- <script>
& A2 R0 T* \1 R1 |( n/ K% }" ~7 V - new Vue({
! l8 A: N; Q) X - el: '#app'
# E- V0 n# B6 W- w - })
- l' T; W' a& W - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
& D6 X$ H. |' Q8 ]# `- <div id="app">
* |$ _2 @4 q9 ?- a' ^ - <div v-if="type === 'A'">% c$ `& K& |- Y; ?) @4 _
- A
* w3 q, `' X- Q: S( x% j - </div>
) \1 M3 m$ w l) y5 f, D3 R - <div v-else-if="type === 'B'">
% l: W6 W3 S' }/ Y; V' E - B8 |: t0 |0 P8 K$ M3 D$ d
- </div>
0 }- b; y( W6 a( Q0 v2 ^7 c - <div v-else-if="type === 'C'">
4 I1 k2 o. v' m5 ]* c5 J - C
/ J, G1 D2 E O4 b8 \ - </div>: c5 |) ~7 J3 M& g! u. s
- <div v-else> e) D+ ^( e0 \9 y, l
- Not A/B/C! B/ v7 r6 |. j6 [: N/ J. ]
- </div>3 k- ]9 L, T( Q3 S5 @2 d
- </div>+ @! @: Y- u5 R4 n; d$ p4 u
- $ r- x2 o3 t6 A+ L
- <script>
4 N/ a1 L: s* }" m: Q - new Vue({
! A+ e2 e8 W8 l/ x - el: '#app',
/ C$ Q) `. K0 ^3 R) p - data: {
4 l* u+ p1 H: P8 s2 L7 W' O* S - type: 'C'
% X* Z8 D1 t& ?! a0 j8 F: L7 J - }
7 {) S2 d/ R) R5 i - })9 ~* ]) I/ m8 S& ~/ i/ r; b0 W! U
- </script>
复制代码 * N4 L$ h% q8 j" p" C
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
, w( T5 y4 Z) \. n- <h1 v-show="ok">Hello!</h1>
复制代码
. I C* r/ s- m, x4 F* h, E9 y. e" i% y6 ^$ r9 Y o4 t
, R! ]) r/ |4 w# s7 O+ D l a! q0 M( ]3 I$ m( d! \
|