|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
' \; M2 M( Q9 x# f - <p v-if="seen">现在你看到我了</p> n M# a- w% ^ a0 _
- <template v-if="ok">
2 k/ a' k* H- \% Y% D# c/ [ - <h1>菜鸟教程</h1>
7 v2 h9 F9 {7 U: g( {$ J' n - <p>学的不仅是技术,更是梦想!</p>3 w4 g" Y Q) \2 v* ~
- <p>哈哈哈,打字辛苦啊!!!</p>! }; V4 r- L# h( I8 w0 \* ]& s, W+ I
- </template>- V5 _. A z/ a2 b
- </div>; {/ b; S" N9 k$ O8 P9 S
- . A- e9 D h- W$ w4 L/ L
- <script>' e9 n- |% o/ T5 ?4 B) k' B5 ]
- new Vue({- H$ M' q- G; @7 J4 S G
- el: '#app',
' ?- s+ [3 o# r( K$ f - data: {
9 m. e: U. {' N' Q2 X U7 I" G! P - seen: true,4 c8 E; v f- Y5 F! b
- ok: true
1 d; K5 ^ g. C* k/ M& c- ]% o8 ~ - }. q1 ?8 y0 P( M
- })
6 d# h1 j9 \5 G6 x4 l" I& c - </script>
复制代码
0 [9 \- ?! z5 j# y+ v& i这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
. q6 a& C. d, d+ a$ u9 x9 n8 k - {{#if ok}}7 w$ H! D7 G. e
- <h1>Yes</h1>6 C* Q' M9 a, S- T
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 0 N7 T; L/ b& p1 n( P
- <div id="app">( P2 F- j) V* O# t: O9 C) |3 m* W
- <div v-if="Math.random() > 0.5">8 P7 f: G. d9 Y+ r! r
- Sorry
( @- C" W( o; w! k& j5 f - </div>( j) y3 z* C$ V# x- ]
- <div v-else>! }$ K3 w2 k2 i# K+ j- T. B3 @. x
- Not sorry
/ D7 A4 [9 A5 q( F: h% j0 c - </div>
8 ^5 y5 g% m( l, J - </div>
6 E! Q, y; Z# a" Q -
. N" o- n; Y8 U6 Z - <script>' c* @) `3 o$ S v1 A) i( j D
- new Vue({
7 R, }& u& c3 r/ \4 x4 t% W7 \ - el: '#app'
4 ^. L! I6 }7 E( g6 M6 X, r - })
! _' u6 A' u8 u2 S& Q e - </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值:
% @- c. i) W$ k4 G- <div id="app">
& `" j/ V8 M' d5 M - <div v-if="type === 'A'">
# Y- O$ E* Q! w% A( Q5 o/ W1 i - A4 x" B! X4 |' y1 P4 q. G/ w
- </div>& c6 Y Z% Y% b4 b2 H- `
- <div v-else-if="type === 'B'"> I% B/ s& ~/ A7 _& q
- B! c+ U: {7 Z' d& x8 O' H
- </div>: K; P1 j" ]3 F |( ?% P
- <div v-else-if="type === 'C'">
\9 [9 V9 S) B8 x - C
$ S7 D/ i6 ^( }! Y k - </div>' f8 q6 Z) F+ K5 G4 n
- <div v-else>
! G! b) T( A5 W" N. w& ~0 m - Not A/B/C
7 L" t9 c: b. x5 s - </div>1 Z1 {+ \4 q/ r, I" v, q5 _9 l
- </div>5 x5 v" T0 q% Z$ V: u
- # B g% _& l0 f: x# o, C
- <script>( G$ f/ U4 y$ K3 j7 d$ z' Q
- new Vue({
7 c3 n! G* ]; W7 N6 R - el: '#app',
+ Z2 }' t( V8 x- r3 G; Q# g z4 v5 \ - data: {
3 k" Q! H$ s/ B1 s. \" F - type: 'C'" r0 z$ J' A9 ]8 m* u
- }% d' t- o# R4 S, w
- })4 i% E3 Q: ]$ n+ w* @' x; z Z
- </script>
复制代码 6 V+ [( [7 v4 H8 g k# B+ C) s
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
) Q1 t5 B& y) \" ~: x$ n* e- }. y- f# C- <h1 v-show="ok">Hello!</h1>
复制代码 ( l9 }) G3 M% ?3 E7 @- A
3 d; o1 x. |, M1 W0 M
( w# n1 O6 z& m: P7 y- U* ~6 Y, k( g
|