您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13985|回复: 0
打印 上一主题 下一主题

[Vue.js] Vue.js 条件与循环

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">: ~% o9 t- m1 }% Y+ x
  2.     <p v-if="seen">现在你看到我了</p>" V$ }$ M' H& d2 b1 r6 W2 b$ n+ |4 @. c
  3.     <template v-if="ok">2 q; C6 J+ H: b( `/ n
  4.       <h1>菜鸟教程</h1>3 V6 C1 |2 L7 j0 B8 C' S
  5.       <p>学的不仅是技术,更是梦想!</p>5 u, x/ s3 _2 v
  6.       <p>哈哈哈,打字辛苦啊!!!</p>% o! _: b2 `, m% K4 ]# u
  7.     </template>
    0 F$ w: h; ~/ Z' V
  8. </div>
    7 B( i* \# f8 s4 s
  9.    
    % p& K6 m" H+ ~& w5 [2 }* L# Z" o
  10. <script>$ \, Q; F. s) V: s( ~6 R# b9 \
  11. new Vue({' ~( ?4 k5 D4 O/ B
  12.   el: '#app',
    2 |( ?+ h: U% g9 w
  13.   data: {
    $ U/ \7 k2 A  {  L* X0 @: ]
  14.     seen: true,& n/ D5 Q$ e3 |; k+ }
  15.     ok: true
    0 Z7 r3 w. n; Z2 L6 ^4 f! s  L" Y# @
  16.   }
      s+ @0 S$ V, \( ~
  17. })' o4 [( v' F( C- m+ }( Q5 b  L
  18. </script>
复制代码
8 }. U& w% S2 O* }
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    ! o: F9 K- R; \% ]+ _& q5 U' S
  2. {{#if ok}}* _' w8 _1 o7 V4 B) e& z2 P! [6 A% g
  3.   <h1>Yes</h1>
    2 j  k/ f% u; L8 y2 x4 k$ f
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

7 K* _# E2 u! j: K: e, q
  1. <div id="app">7 f. ]- i6 S1 {4 b% b4 e
  2.     <div v-if="Math.random() > 0.5">
    4 q5 k$ k3 ]" p' {
  3.       Sorry7 S+ J+ G# q5 v, w, |8 H
  4.     </div>4 h8 z3 v& Q8 a, v6 n$ U% S; U& r
  5.     <div v-else>, q/ @* K/ P; a/ a: d5 p6 k
  6.       Not sorry0 v% a8 M) T9 p; ^+ p
  7.     </div>; ^+ i1 X/ r+ p* A. k, C7 L; h8 X
  8. </div>
    $ r4 a6 t# o- d+ o) L& n" Y
  9.     8 [! ]9 _3 `5 `7 H
  10. <script>" {% g1 d+ D( \6 R
  11. new Vue({+ `, [: q2 ^4 H9 V% m7 L, m5 j
  12.   el: '#app'
    8 G. [) `9 ^* ~2 V
  13. })' k/ n* z  q( o* x& N
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

8 x! R/ q. s* }: R
  1. <div id="app">& [" Z, T& |. p5 Z  z
  2.     <div v-if="type === 'A'">
    ( b1 q! U0 m' R0 j( Y! K
  3.       A! J9 `9 t' K# H4 u3 z
  4.     </div>
    * i4 L  q; C" v/ V$ r1 h
  5.     <div v-else-if="type === 'B'">, v$ z! ]$ n, Z
  6.       B
    . z% J% S$ e$ p; T& T; B$ J
  7.     </div>7 p( T5 E8 m( x2 O: P' M! B7 |# T- L
  8.     <div v-else-if="type === 'C'">
    4 @" o+ @. j0 a$ {) @
  9.       C
    4 K6 I+ z% p' d3 ^% M
  10.     </div>, r0 E7 V  z5 u; L
  11.     <div v-else>, a: Z7 u4 Q6 e0 w
  12.       Not A/B/C- \& ]/ i$ Y- l5 F7 q5 @- W
  13.     </div>% O( `. q" V& m0 |* A6 l3 L6 ~. l
  14. </div>2 b$ [% Z! b" `$ M
  15.    
    & f2 ]- }6 u0 Q! ]
  16. <script>- X5 C( C  W0 W, k
  17. new Vue({2 G9 v5 }( X. d% d( n9 h
  18.   el: '#app',
    " S! u+ L7 r  M& n. ~; W
  19.   data: {
    4 W& |" W/ K" v. o* L3 V. x: w
  20.     type: 'C'
    $ X; H2 I8 x$ }" [& W
  21.   }
    , T2 o& |. \8 f( j$ q
  22. })4 C% ~' j4 I' V- u: [8 S# J5 [
  23. </script>
复制代码

# o( ^! t7 r. U4 P
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令# x+ z5 F3 I+ f7 h( c3 T
  1. <h1 v-show="ok">Hello!</h1>
复制代码

7 E$ X8 \7 B4 Y) }0 Z* Y
0 t: w8 |5 q  P( i3 n, Y2 k- f* J
4 i; g5 A+ q5 u, |9 m$ Z% C$ T$ w+ w9 a4 x9 B, p8 j" f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 13:34 , Processed in 0.056967 second(s), 19 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!