cncml手绘网

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

作者: admin    时间: 2018-7-4 10:52
标题: Vue.js 条件与循环
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    - v) \$ N2 u. i( }) [( ]2 r: }7 O+ K
  2.     <p v-if="seen">现在你看到我了</p>
    9 E$ g& {  V, h8 m" K1 A$ b
  3.     <template v-if="ok">
    & N+ o' |3 U/ X+ M6 V
  4.       <h1>菜鸟教程</h1>
    $ z' i+ q7 ?& K& g5 b5 W) J
  5.       <p>学的不仅是技术,更是梦想!</p>" S2 M; `" D8 a2 ^
  6.       <p>哈哈哈,打字辛苦啊!!!</p>4 i, n2 ?% i% f; ]- U3 u1 W$ s& @) l
  7.     </template>7 F, R9 Y  T) t5 R/ W" z. R; d. C
  8. </div>! h# z, x3 p0 |' ?' Z8 q
  9.    
    - e+ N. m! F2 i6 U3 q- B: a9 O
  10. <script>
    8 B+ ~8 Z" P7 @' `% [
  11. new Vue({
    0 q  a& v6 x" U( N- @  z4 y) }
  12.   el: '#app',1 M; A2 a  U& c3 j1 \
  13.   data: {0 |+ t* H1 v. A, S2 v8 }
  14.     seen: true,
    5 E; N4 R& m* V1 v3 U5 s
  15.     ok: true
    ) @3 {3 Q& T: v1 j! c1 A
  16.   }
    $ v1 G( S, G7 _! \' b) S8 C
  17. })% v) A+ v/ G- l4 x
  18. </script>
复制代码
1 M4 S8 \5 ^1 K% L/ J1 [: N$ f
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    * v1 z. j4 o3 O5 x/ G3 s; M
  2. {{#if ok}}% q' A2 H6 A; A( ~: L# I6 z
  3.   <h1>Yes</h1>
      I( w+ d, o. \, h
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
& U9 S8 ?6 u( i& H8 ^8 w! K4 C
  1. <div id="app">( q- |# u5 p. E  j' `
  2.     <div v-if="Math.random() > 0.5">6 h, Q# M- V3 X9 ]/ ?0 O  c
  3.       Sorry; E' m) X, q1 H& \2 T' [
  4.     </div>
    , X3 H, u: r. @1 z: E; f
  5.     <div v-else>
    1 K# {$ O" k5 t& o7 i* w2 W
  6.       Not sorry' [  J: ]. Z/ t, Z3 ]* I& c$ [
  7.     </div>
    & w, b4 g" U  ~0 `2 f
  8. </div>
    7 h$ y; y# A: @; G
  9.    
    # I0 I: Y0 x* a; x0 R8 F0 j; E
  10. <script>  ~5 s2 K/ h; Z' }$ q0 S
  11. new Vue({
    ) t0 c! u) H7 P3 [$ a
  12.   el: '#app'% D, P: n, Z' g# ?- h6 U& q
  13. })3 g( t; d. {6 ~9 v
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
9 ~) E2 z2 b' f" t
  1. <div id="app">
    8 V$ H4 w& k/ u! `* b7 c
  2.     <div v-if="type === 'A'">
    / x# s, h7 ], U) k
  3.       A
    9 c+ |) E/ l  }2 n; O9 W
  4.     </div>7 Y4 c& A1 v, h5 W0 s
  5.     <div v-else-if="type === 'B'">2 n/ m' Z; O/ ]* U2 J
  6.       B
    ( R: k& l  D/ k4 I* a6 S/ I7 b
  7.     </div>
    " r$ l1 C! |. D" \& Q
  8.     <div v-else-if="type === 'C'">4 k& o5 `9 D0 Z7 ]
  9.       C
    8 W2 d, y$ X) ?0 R" [
  10.     </div>
    2 J% `" x0 [, p8 H' |
  11.     <div v-else>; o4 B0 f6 @+ J: [% A/ E
  12.       Not A/B/C, w8 m+ X6 Q; {/ x* |5 v& @/ B
  13.     </div>
    ; z- F& c" R' I+ i# A9 d
  14. </div>
    8 h. P7 s" [" F. v7 r- L
  15.     ) B+ {3 l1 m7 y4 H' d
  16. <script>: I1 V9 g/ v& g1 j0 I( ]6 W! z
  17. new Vue({1 c( ^7 z4 ~: T- X: r
  18.   el: '#app',
    5 G* }. Y! a$ c& }6 e
  19.   data: {+ |: ~7 c, z7 Z; W' G
  20.     type: 'C') t/ L/ G% w, n- T
  21.   }& F) d) j7 h6 L: k$ X
  22. })1 p$ ^1 }& U! Y0 ~  F' [% m' u
  23. </script>
复制代码
; `1 a3 [/ [2 S) f
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令1 d: V, _' R$ S- l# q
  1. <h1 v-show="ok">Hello!</h1>
复制代码

8 E( @7 ?9 u) ^$ |* c7 Q! b4 N, x: o
) M, S0 O8 [& y% n7 I( E

4 i5 ~* U# P! T+ g




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