cncml手绘网

标题: Vue.js 条件与循环 [打印本页]

作者: admin    时间: 2018-7-4 10:52
标题: Vue.js 条件与循环
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">9 x3 \) @/ \; v% R& L+ P
  2.     <p v-if="seen">现在你看到我了</p>
    * ^  B+ K! k- \6 w% F
  3.     <template v-if="ok">
    6 Q5 h8 f8 H# c8 i8 X0 e9 X
  4.       <h1>菜鸟教程</h1>: o" @  H: ]) f9 B4 _( a% [% g
  5.       <p>学的不仅是技术,更是梦想!</p>& K4 P; W6 q4 [; N: S& [
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    : b/ _* L! T8 P; S
  7.     </template>8 R  m$ \) s! _; ]. G
  8. </div>
    8 P* u8 q8 [+ G
  9.     3 p( q  z! I% A9 L" v
  10. <script>
    " ~/ a4 _  E7 K  Z# |9 ~
  11. new Vue({
    + I) e0 B; G8 d
  12.   el: '#app',& w/ U% r- |3 _
  13.   data: {
    1 r4 ~/ x1 L# Q0 v* ^
  14.     seen: true,
    1 t' w; b/ l. o4 u) Q/ C% o
  15.     ok: true
    0 ?4 T% m( B0 p% o. F% E1 R
  16.   }5 g. {$ Y- b1 U4 J
  17. })
    " k8 U" z+ K+ n, k
  18. </script>
复制代码

* W7 ]' O3 d$ s  c' ~1 r8 \
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    * v8 l  n2 _; l& w
  2. {{#if ok}}' U, \" i0 s# U2 r
  3.   <h1>Yes</h1>
    - U7 ?9 r7 y& L" M( [! c
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
2 b1 K8 Z6 n0 J" Z# Z/ R
  1. <div id="app">! G0 }  v* [  ]6 I9 I
  2.     <div v-if="Math.random() > 0.5">
    " P2 ^: n0 I! C$ {+ `
  3.       Sorry5 B' d2 R. }  Q9 R2 T
  4.     </div>
    * b, h6 r; d- F, ?- N0 G
  5.     <div v-else>8 L, e* G/ a' r
  6.       Not sorry5 V% Y( s! f1 k4 h" S" h" X  q
  7.     </div>& T2 ~- m% K9 O
  8. </div>
    . t8 A. v, r: J/ x1 B0 Z, d" ~
  9.    
    5 s+ x- b' J& K3 U  @
  10. <script>$ Z1 u5 q( ^: c6 D& K
  11. new Vue({& @" X0 }9 |3 H& R7 N; T# ?
  12.   el: '#app'
    8 H5 o5 R; M# O3 j0 x$ k
  13. })
    $ U: ~2 F% E( ]# ~: F
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
) e7 F( F9 I- G: C2 _8 V4 C$ z. c8 s
  1. <div id="app">1 z" p. r4 I& W/ E
  2.     <div v-if="type === 'A'">2 H5 L' K9 V* t* A9 x0 e
  3.       A) n: _/ G+ p( o: V% h6 @( y$ m' p
  4.     </div>
    3 g/ e: g: D9 r6 M) |9 l6 y
  5.     <div v-else-if="type === 'B'"># d  j% x& Q) m* u0 S" k7 e
  6.       B
    / h7 L9 l) `# e& `" S2 u
  7.     </div>( ^0 _! g( v' T9 [8 R7 Z; `
  8.     <div v-else-if="type === 'C'">! m2 e  ?+ r3 t3 P6 R
  9.       C
    6 _! o4 ~5 S' f+ T+ h
  10.     </div>1 A7 |1 {- [2 Q0 g
  11.     <div v-else>* C/ R( O, G& D
  12.       Not A/B/C
    8 S9 y( N6 a% k, o/ z! o# Q
  13.     </div>% U' `+ i: |6 t0 F: D" f3 o" w4 ]
  14. </div>7 H1 ~" n$ m* D* b' s  z2 M/ D0 Z& ]
  15.     * N( F1 p/ _- h' v8 B9 L& J4 m
  16. <script>+ R! ?' [: ?8 `. k
  17. new Vue({7 }7 n+ C! i# a
  18.   el: '#app',
    ! {" L( e: q' J8 P8 B1 a
  19.   data: {
    8 ?3 g) `& k) X$ o8 P
  20.     type: 'C'
    $ X3 B6 k( H. _3 ^8 ^
  21.   }
    . I1 m, r; j, \" Z; x4 Y
  22. })
    2 B  z9 r, ?5 n! g4 M
  23. </script>
复制代码
) i* v6 ?1 b  [
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令7 M* }1 h/ N: p
  1. <h1 v-show="ok">Hello!</h1>
复制代码

$ W1 X4 N4 j$ R9 `' g
4 @1 Z6 e2 m" B( J  A9 Q9 m- H; @! B
6 b) V9 J! O% p$ E. B/ v! m6 a/ L





欢迎光临 cncml手绘网 (http://bbs.cncml.com/) Powered by Discuz! X3.2