cncml手绘网

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

作者: admin    时间: 2018-7-4 10:52
标题: Vue.js 条件与循环
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    1 T1 `5 I' }3 A& `
  2.     <p v-if="seen">现在你看到我了</p>& Z5 a9 O4 u, m! y8 Q
  3.     <template v-if="ok">& ^2 w' z3 E0 {
  4.       <h1>菜鸟教程</h1>
    / f5 @6 o3 x9 ?: `4 ?9 T& A
  5.       <p>学的不仅是技术,更是梦想!</p>
    " p+ I' P# v. f% o( A7 l6 ^
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ( K/ S& \, }# ^2 N2 z' I
  7.     </template>
    8 l# r5 ]5 q2 T, h* ]. ]
  8. </div>
    # n" {& i8 q8 T8 f; z& j5 O0 R5 L
  9.     * }* X3 D+ m6 @+ \, a3 _
  10. <script># [% z, b7 D+ u4 B1 e# ?
  11. new Vue({1 b* E7 _+ |0 a) Z* Y
  12.   el: '#app',/ h" L8 t$ v) L' W9 U% S
  13.   data: {
    8 o: v' |! h- X1 X. V
  14.     seen: true,: E* h: {6 l+ o5 T/ ?7 O" N
  15.     ok: true
    9 e4 |5 u' Q  m% Y
  16.   }
    . E% V2 K$ W9 \) O% b9 E
  17. })
    ( n. v8 q; H1 h, z
  18. </script>
复制代码
8 {% T: k  _/ \  s7 j
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    : T; M( `6 m0 y5 I" Q4 j# w7 x
  2. {{#if ok}}
    2 l* z, |, u' }& j: _
  3.   <h1>Yes</h1>( n! X; r% a2 P) Y* |
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
7 V" n# A& ?: e$ t$ h' r- Y
  1. <div id="app">, _9 T4 v" l7 N# z5 M
  2.     <div v-if="Math.random() > 0.5">
      {0 ^1 B2 Q, d4 o
  3.       Sorry
    $ ]! D/ `  Z! [; r1 \
  4.     </div>
    3 U; q+ h% B3 k
  5.     <div v-else>( t" g4 v; n  x  ?) s
  6.       Not sorry: g/ P; F6 z% q4 n+ Z7 T5 D
  7.     </div>
    $ X$ V# F: }+ G& v2 b" W) d) E
  8. </div>  [% i/ F% B, H4 T
  9.    
    & {" }* L$ r4 |& ^, G
  10. <script>0 r9 j4 Z9 v0 B# m; P
  11. new Vue({& F8 ?4 `0 G. J. q
  12.   el: '#app'7 f2 f3 i- c* X! @( I
  13. }); W. H3 i9 E' r- r' Y; j
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

! i1 V7 P) ]1 Z& J! ?% H( ~
  1. <div id="app">+ {5 |: g6 H4 t9 h! s) K9 U5 C
  2.     <div v-if="type === 'A'">
    1 G9 O. C; ~/ T, l' g
  3.       A8 b8 B/ P8 S2 j+ p, ]
  4.     </div>
    4 q: E. M% K( l' o6 D* o0 g
  5.     <div v-else-if="type === 'B'">0 u0 I- I; r3 q1 D) u4 i7 F: j5 n
  6.       B
    ' c+ [% p$ b! P' ]8 n) e: r/ {
  7.     </div>
    * b& o# l! Z8 _6 j+ N- h, _& e
  8.     <div v-else-if="type === 'C'">$ N2 ^# t, K$ Q( D
  9.       C
    ( g5 e' m. M" N
  10.     </div>
    " H) o+ E( B4 L, B9 G
  11.     <div v-else>; l& D& j' ?* n  U) @* a
  12.       Not A/B/C
    + c2 r# H) l1 f1 I6 E& y6 }0 Q0 x5 l
  13.     </div>4 x6 J: J* v( ~2 }$ p0 {2 c
  14. </div>
    9 Z1 B) W5 D, C" G* D
  15.    
    9 L% A9 [4 C+ w4 A7 w; c) @
  16. <script>3 T6 e1 J9 h  K$ V3 t% j& a* @/ B
  17. new Vue({0 W/ m& _. a. Q1 a4 @7 ^' ]9 ~% F
  18.   el: '#app',
    - u+ I% W. p* U+ h
  19.   data: {
    7 K$ ~9 W3 [. B3 p- O: ^
  20.     type: 'C'1 b7 i! s4 v9 W" {) I* u
  21.   }
    7 Y  d) y) O& k5 C
  22. })
    ! l: K8 w0 H1 Z
  23. </script>
复制代码
$ @# \! C; y0 x( N
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令" U6 ]; B  e- Q) ~/ ^  m; Z# y
  1. <h1 v-show="ok">Hello!</h1>
复制代码
7 Q$ Z1 k+ o0 V' a

+ m. u- o9 w" |" c4 X
8 s* k3 l, Q5 b7 B. b' a7 T& x9 o/ |* ?6 N9 P- O





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