条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
$ Q M# K6 W3 d - <p v-if="seen">现在你看到我了</p>1 h G/ s! Y0 R6 N
- <template v-if="ok">
o/ S: O! u' a% h# b - <h1>菜鸟教程</h1>. W' b- S0 U7 `( c% M
- <p>学的不仅是技术,更是梦想!</p>
" m( L( X: d% \; Z - <p>哈哈哈,打字辛苦啊!!!</p>
S0 t! X4 k2 [. j$ r! \2 }! y: Z - </template>
0 g8 H1 r4 O% r3 @7 g/ Y) \ - </div>
% K7 W: C9 d9 k9 K - ( H3 P- l- b. {/ P% ~8 G, L1 ?3 _
- <script>; }- z) M2 @. a2 y
- new Vue({& r, q) V4 }: M4 E+ N5 O# D
- el: '#app',
& X8 L2 X, R& H+ a5 b3 n$ I - data: {
: @7 }2 g* ?3 E( f3 n8 G- i, [6 ^7 L - seen: true," ^! S9 i- ?3 k# ~; S% F# a
- ok: true
{7 @- M" w3 o# \- [/ D8 m E - }2 e( ^+ N' B1 E' P
- })
% e& L+ z: B& X% M4 v X - </script>
复制代码 / P/ N! _' w% S+ Y+ Y. v0 b
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
1 m5 _' ]# x9 l J& H - {{#if ok}}. X* p F1 V: J0 E
- <h1>Yes</h1>
; H. c3 K9 D [2 j* b7 P* j( X - {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
- w. \# _, U+ W/ e$ W9 E! Q- <div id="app"> m9 g, `0 O. A: Y% V+ v& {
- <div v-if="Math.random() > 0.5">0 m. }/ r; u* v( a% d! {2 Z
- Sorry
7 Z8 O% j8 m& v/ w1 I, ^ - </div>: n! [. B Q) F
- <div v-else>! D: j* I" u/ d3 X0 }4 R
- Not sorry: \* T1 R. g1 Z, l9 D/ [1 X$ ^
- </div>9 I# G( |, c7 u- i6 q$ M
- </div>& Q$ [% W U. x/ U* R
- 3 m/ v, K1 F+ B! J
- <script>
7 d" V& w; V" Z/ T% ] - new Vue({0 |) o8 H! _2 M: u
- el: '#app'
/ y- E; i0 |' }2 T0 t - })8 F' e" M9 p/ `( a+ \
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: $ S9 p% E2 [, J1 m4 \3 D* H
- <div id="app">
3 N; b6 L. K; o( \7 U( v - <div v-if="type === 'A'">
/ S" ~2 r$ I/ @9 M6 b0 U - A* f7 t6 U. ?6 ^) L+ f! C7 t
- </div>" b% S% r c- r; e- D; J" y8 ]
- <div v-else-if="type === 'B'">+ v: G l" w# h/ s( Y: k
- B
' J$ _6 Z( _; q" w0 d - </div>
. H8 r4 g% ?8 {1 a& [; h! Y - <div v-else-if="type === 'C'">
6 i7 | T. R" R4 O& w - C
- Y8 w& Y- c/ a/ s+ G. f - </div>
2 D$ x3 B+ O) t9 y2 q - <div v-else>
* r4 h8 l3 g5 ^# R7 @8 S - Not A/B/C
0 k V6 v& m6 Z - </div>5 C& \7 H% C' a
- </div>
3 `6 Z7 W1 M8 T" d) b -
& m( R1 K1 n) l; y* I - <script>8 q4 `( G) u- U( W0 s
- new Vue({
/ ^* w9 q; }- l& j, N1 x - el: '#app',
5 l! y/ o7 j4 A, y1 v - data: {
# I) f7 A7 `4 F1 h4 C - type: 'C'0 r7 E+ ?' Q g& q4 a; T6 |
- }; b% I& e# v. _8 S$ r9 f: t$ ^
- })
0 v4 V/ v% w8 G; K7 Z' P: g. s - </script>
复制代码 + t/ W6 |1 w- e
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令+ Z) b! w+ C" U) c* c4 x
- <h1 v-show="ok">Hello!</h1>
复制代码 . J9 V ~& ?4 j7 M. Y) z+ ]4 c- N
) ^" n$ c$ E/ F; ?& k. m2 E, T8 k( d7 w; a( g3 S) N
: `" @/ A9 o# C' S |