|
条件判断v-if 条件判断使用 v-if 指令: v-if 指令在元素 和 template 中使用 v-if 指令: - <div id="app"> }0 ~2 t- l( Z9 O2 Q! W% {6 |2 [
- <p v-if="seen">现在你看到我了</p>
$ [. [5 t7 U! K. } - <template v-if="ok">+ K1 n( l# l- X5 \7 t; ]3 ]+ K9 P' _
- <h1>菜鸟教程</h1>
) ]) {) J+ H; w! m. ?" c - <p>学的不仅是技术,更是梦想!</p>
/ v& g$ R& ?$ ? - <p>哈哈哈,打字辛苦啊!!!</p>; P& o9 N# C8 }
- </template>) P, E* q0 ~8 P- I' @( a) P+ A
- </div>$ w; t7 U0 z1 [5 C7 ^2 r
- ) I4 s% D) M$ U& d# O* s
- <script>
3 c* ~" }, K' ^+ ?$ ` - new Vue({$ y3 G- l/ G3 U2 f
- el: '#app',/ I% ?! i8 \7 Q6 j6 a0 b% Z% I
- data: {/ o Y" z5 G. e5 f1 o
- seen: true,/ N& d; B& v7 a! {
- ok: true
g9 v7 w" K/ Q b v' G. g - }( }" i2 Z/ S+ n8 J: ]; h5 T( f
- })
Y" h" |% M6 Z) {5 G, x8 W! g" d. y - </script>
复制代码 ! ^* Q2 o2 q M& d( i5 l
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: - <!-- Handlebars 模板 -->
& t, g) i# j8 I% Z- s - {{#if ok}}
% O0 g* ^) n9 T# T - <h1>Yes</h1>6 G$ O) C) j& T, @2 c$ d
- {{/if}}
复制代码 v-else可以用 v-else 指令给 v-if 添加一个 "else" 块: v-else 指令随机生成一个数字,判断是否大于0.5,然后输出对应信息: 5 n5 o3 N( M) t( w1 ~
- <div id="app">8 r' d2 [, P' M6 S6 x5 q) r/ O
- <div v-if="Math.random() > 0.5"># I1 t* r( y; Y) k, a$ Z8 }+ x8 l
- Sorry" j( n/ x, n# m
- </div>6 c$ }9 s4 O8 Y" Q5 `
- <div v-else>
7 m9 B6 j2 Q* G1 V; V5 I - Not sorry U, A) D# l- t
- </div>
8 A- z0 z# f3 ?( h' d0 j7 u# ` - </div>6 Y* a3 K# K' O5 Z$ N! i1 Z
-
6 o B! V5 | B) `. q' m2 z- D2 M - <script>
( g- K S" u- S$ a+ Q) m# z - new Vue({
3 o" x( ]$ H3 x# U - el: '#app'
2 h+ g6 k9 r; l# j1 i9 m t1 O) P9 p - })* O8 `( K+ \# g3 K9 t
- </script>
复制代码 v-else-ifv-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用: v-else 指令判断 type 变量的值: . e+ D# R* T3 |( N \( z
- <div id="app">! K0 m# L. \8 x9 {" l5 u3 \- E
- <div v-if="type === 'A'">
9 E# q" M1 G M+ i; k8 g - A
+ S3 A Z9 F( o2 B+ P3 A# G - </div> c# x+ r: z- n R6 O, T
- <div v-else-if="type === 'B'">
! y6 M. L5 U( j+ \ - B ]! Y4 I- O2 E4 v1 p6 P# f- s, h
- </div>3 z5 h; } A: J0 I5 P3 H; j2 I: r
- <div v-else-if="type === 'C'">3 [4 _0 v6 L1 \. A" T# W
- C
+ H% n" `, ?( j' c) K8 P$ ]9 @- p - </div># n9 l# x, Q; J* A* L/ ~
- <div v-else>( Q- C6 A. _7 c8 h6 P
- Not A/B/C
, M% E/ _: j b7 C - </div>1 s0 {$ W/ i$ a6 W0 ~
- </div>8 C( O9 e% S2 c& @
-
P1 i% c# _) G% O4 k- q* K0 }% @3 ^ - <script>7 F7 B8 ]* i* J5 N( g4 y1 [: ]+ m
- new Vue({
) x5 g M. z- F0 `. I9 K2 y - el: '#app',: `0 h" r% e4 d0 A4 o
- data: {( W3 i1 I, J; t0 e* r
- type: 'C'
) M& u) V( O, X. g5 c" v3 o7 M - }
8 ~1 Q/ T7 d/ { - })
q& A4 s) Y& N: k - </script>
复制代码
6 [+ |9 A0 p& F/ l$ K8 Dv-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。 v-show我们也可以使用 v-show 指令来根据条件展示元素: v-show 指令- d' y5 i2 `, S) ]- U
- <h1 v-show="ok">Hello!</h1>
复制代码
O% ]8 {/ @! Z K M! w5 O' W9 Q
& L# p5 q- B* s# t% N6 B2 t
2 a/ ~8 C3 ^' I" N |