|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app">
3 O8 B! j2 j! m- H$ `( _ - <p v-if="seen">现在你看到我了</p>( V4 t) I5 ~0 F# k3 i% u
- <template v-if="ok">
8 n. a3 E* [5 ? - <h1>菜鸟教程</h1>
$ J* L# ]: o. Y! S& O - <p>学的不仅是技术,更是梦想!</p>
' Y* O% f0 `; U4 ]. i - <p>哈哈哈,打字辛苦啊!!!</p>7 c2 ~4 A: P2 v& R7 C7 @2 D
- </template>, p9 s# ~3 k, f- f3 B1 V
- </div>+ g# U9 r' m, d* v, h& j6 M+ ~0 C
-
' z; I4 [: c+ W: f, e! W* M- T - <script>
2 B5 n) n5 @2 X ~ - new Vue({
7 o0 B8 \, p; B: w) ^+ k* [9 K+ o - el: '#app',4 F; ~8 z9 _1 S; y7 L
- data: {( ~8 R2 B* V3 t7 i ]8 H
- seen: true,( x+ H& a8 _3 J" y5 M4 a
- ok: true+ X+ j4 d Q0 d2 N: X( S b
- }" X2 k; F1 k. y6 R+ e
- })2 v* Y) W2 v7 V7 ]2 B1 C/ x
- </script>
复制代码
. N& b' ?! q( B5 ?) x/ R7 `# V& r2 J这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
- {$ D- s" H' W, J7 s - {{#if ok}}" ^7 [$ ~: G" s& z
- <h1>Yes</h1>- ~% S0 U* q [ w
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息:
/ \7 M: C3 F+ |3 ~: F, A3 q$ o- <div id="app">9 B* R/ e* F! m& E
- <div v-if="Math.random() > 0.5">
( O# B" r: R/ i8 w - Sorry
+ R4 l, y& D u1 B7 @ Z - </div>
( N+ y5 n% J2 x; s7 }/ U. o - <div v-else>
1 N; f" Q& C3 E% A; i - Not sorry7 f$ N: J+ B- B7 L. u9 S
- </div>
: k, ~( D3 g% ]+ Y - </div>; S7 u0 I; n, u6 A4 E% I! k
- & w1 J8 N9 B/ q
- <script>) ^! H( ]/ |6 N, a
- new Vue({
2 B4 L% {# n, z) N# V - el: '#app'% s. D8 U' J- \: X
- })# H* _8 I8 v; q ~
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: , z6 j1 n7 a( |4 C9 I7 X
- <div id="app">
, h* @2 `3 i& E! e! r% B; h - <div v-if="type === 'A'">
9 L+ J% ` h+ Z3 a r f1 M - A* v. ~- T/ G7 n. J s
- </div>: l8 [. @$ I& t! ^) _ W
- <div v-else-if="type === 'B'">
2 e9 L6 S! ^4 U7 G$ D - B- ~; L% l7 O1 X& S: o
- </div>$ I; e& Y0 P5 j) D6 k
- <div v-else-if="type === 'C'">& g: Q, G* d+ j- i. Y
- C! b* q# }6 K% @" W7 W( E, p
- </div>, i2 ? p, d5 a9 A f
- <div v-else>6 L; B! y) B: g( f) a0 Y6 ^
- Not A/B/C! p+ J' w+ h' o; L. G$ I; {
- </div>
$ j5 {0 I* S9 h4 O- {: e3 g8 } - </div>+ ~* e, j& x& [* u7 t
- 0 x. J# Y$ d7 l) \( i
- <script> I+ g6 T2 N! Q& M
- new Vue({
9 R: @) n6 y6 `; \" h+ K6 \4 ^$ n - el: '#app',& i9 s E; h, V, g& l0 a/ d
- data: {7 p4 E) O- T, l
- type: 'C'
* q# m* V: r0 k1 i! S* k$ ?2 P - }
B: u1 c2 z' ?' a - })
6 v# d( U' r. K) h* N - </script>
复制代码
' H5 p- c! z0 C- E7 ^7 nv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令
# G$ W3 t! q6 W- <h1 v-show="ok">Hello!</h1>
复制代码
0 k0 Y- J$ g K- X1 u/ g( X i" A+ r/ K* P
; K3 m! N3 P9 X* h5 A$ o' X0 V
h" e% t* Y/ f' y: a/ `4 n |