|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
& Q( `$ [) r+ ?2 J2 ~( s - <p v-if="seen">现在你看到我了</p>& B# |& L9 D& C0 h0 o b0 L7 f8 ]5 A
- <template v-if="ok">
0 ^& t7 V5 ]* k j - <h1>菜鸟教程</h1>
4 y" \3 o3 `, L- J0 ^8 a3 X - <p>学的不仅是技术,更是梦想!</p>; O. }- l! J$ D+ m* P$ W' F
- <p>哈哈哈,打字辛苦啊!!!</p>. O% {9 e; O6 B: a/ [
- </template>0 Q( ^. A' B1 s- N$ Y
- </div>
4 T& f* @; h, c# M$ { - : y* G7 Z8 k) r0 J# r" \$ j
- <script>% Q+ ^8 y" W1 _; {# F! a
- new Vue({
7 x5 N- }/ |2 n: L - el: '#app',! A* q! d6 c$ _- _8 ]
- data: {
0 P1 d( T6 i: ]% L$ @5 S - seen: true,
4 g5 a, e, v) h/ i8 e/ K+ H8 W - ok: true1 Z: p- p7 _. }4 w# n
- }
1 [: ]1 D9 H$ j6 f0 ^. t- |( } - })1 H7 C3 o: o+ t5 B/ q- K' w( h, A
- </script>
复制代码 / X. F/ b3 p' h" x
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
8 U8 M9 c; t- P: t - {{#if ok}}
& E8 {" X1 c8 Y0 h0 ] - <h1>Yes</h1>
& |# _0 p, I. j- W4 t: t1 p - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 0 `. T& Z/ h! K1 y
- <div id="app">. |& E' _/ E* V/ J# H
- <div v-if="Math.random() > 0.5">
3 L' s7 I, t$ ^" X - Sorry# ?' v& F8 I4 Y% T
- </div>
" ?# ~. p# ^5 n( t8 Z2 ?0 d3 z - <div v-else>
- J. ~" p9 ^( \$ j8 R" P. F - Not sorry
, E8 E& L# c- Q% Q8 `, ~ - </div>
6 I9 V: o- }# B% U4 ~5 w. i - </div>
+ ?2 ?6 u6 d# |( M8 ]0 B -
5 K& B& t. M3 D+ ? - <script>4 N; x% i$ H: ~ X' z3 ~- Y l* R
- new Vue({. c- K$ m* w. P2 g9 n
- el: '#app'/ T7 F) K# w( f+ k; ]8 Y) j
- })" p: S- O: ]4 b, c# Y! Y
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
/ Q( b" a- m, `1 n- <div id="app">! k6 f4 F! L5 N
- <div v-if="type === 'A'">
, J: w. W+ Q+ d) E - A% e$ p3 v# V8 \9 o) e' N( j
- </div>
6 ?: |6 o; B$ E; A# c - <div v-else-if="type === 'B'">) {0 ^8 l8 _/ v: n
- B
+ R9 m- b# w( N" R! ^4 Z - </div>7 m: i7 Q+ J7 ?6 v4 ~
- <div v-else-if="type === 'C'">3 `7 {. {6 T Y2 M9 I' U4 C
- C
- d$ t3 j" v+ v3 x1 I - </div>
+ Y1 |$ x# }' }3 y5 d - <div v-else># x! i: y0 e' }+ T# N6 j" ?
- Not A/B/C
% g$ P- |* h6 e& R: ` - </div>
$ Q* _5 O$ J, q# y - </div>
4 n+ G% d4 b0 [ -
# U3 C9 R2 h2 @2 k0 x$ U - <script>) y6 g# l; C- L* j
- new Vue({
0 U) T; r) z r - el: '#app',
, x# V6 X8 O6 W7 d5 A - data: {1 ?: E! b% X) o& {# S
- type: 'C') F' U4 S# t t/ K+ S K
- }
' Q$ Q- E% V; H1 L' i8 O - })
0 ^) I+ g( C, d% `! s - </script>
复制代码 ! K1 V; B2 S$ D9 s
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
7 W! Z+ ^& u! o- <h1 v-show="ok">Hello!</h1>
复制代码
G8 x( H4 t5 ]$ X! U3 o% F/ Q+ E& N6 B; ]) T. d
9 p3 L; `% U+ o$ R
: \# }* ]6 j. x8 T5 P) Q+ c |