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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">4 i6 \: Y8 q6 Y2 ]+ \
  2.     <p v-if="seen">现在你看到我了</p>1 O3 |0 o) D6 a! `: u) j- L) h
  3.     <template v-if="ok">
    6 x/ I: B  f" R, n9 }8 P
  4.       <h1>菜鸟教程</h1>
    0 E. s( Z' ?/ L) R0 C$ y3 a4 q( c
  5.       <p>学的不仅是技术,更是梦想!</p>
    2 i2 F1 E$ Q) D
  6.       <p>哈哈哈,打字辛苦啊!!!</p>0 G) h& _) w( k" d. F
  7.     </template>: q2 |& A* }) ^+ }* r- V- _
  8. </div>
    0 Y- [4 e7 r4 o8 l) [
  9.    
    3 O$ c2 W* ~3 @8 `! @" u
  10. <script>
    1 C1 e  ~' ^3 Q; F3 ?
  11. new Vue({
    ! Z1 \7 s. Y) S# o' D$ V! B; c
  12.   el: '#app',
    # W3 ~7 S" [6 i. c# B2 [* W: P  K' k- p
  13.   data: {
    ; r/ p/ T# q. V) C# f" y
  14.     seen: true,4 h) T8 A* E) ~: c% I9 n
  15.     ok: true4 a4 Z  d' t+ j* F6 a( D
  16.   }; F0 T, n3 [/ T( \
  17. })9 I4 `- t; {3 [" M9 L9 q9 P
  18. </script>
复制代码

8 U; ^7 c% j* V( B- a) Z
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->$ E, I, }( O' O" m& R0 o, ]# p
  2. {{#if ok}}& [; V6 w+ Y( |9 X( W  G+ ]' e" U! H3 y
  3.   <h1>Yes</h1>
    ! h: z% t2 u, |. `! T6 t4 f% F7 h2 S( u; C
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
; K0 N3 p5 X. @: O0 K2 O
  1. <div id="app">
    , l. k) E3 w* j5 b* H' d* B4 s% k' |- z
  2.     <div v-if="Math.random() > 0.5">0 k, t9 p$ ~9 T$ W. u0 H
  3.       Sorry! }% \8 Y! ?4 D
  4.     </div>
    . _3 g7 _7 M$ `7 C1 V5 D# H
  5.     <div v-else>, ^( u2 N; A5 l; V8 V
  6.       Not sorry
    7 ]. o. x6 P4 @$ M
  7.     </div>
    + x+ L/ A* j  [0 C. u: N1 M8 p/ V: m
  8. </div>
    ' n; l7 {6 h) N! g* T* o! v
  9.     ! g& E! ]  ?0 X7 J$ X
  10. <script>
    1 p7 j: ]. b6 V
  11. new Vue({& W$ L3 @$ K' @- ?! p
  12.   el: '#app'0 Y8 F) l$ {) U7 Q5 k3 ?
  13. })# A1 ?: g7 p; r8 a* H+ H: n
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

  \8 G, V! I- T6 w& p. A: Q7 A" y
  1. <div id="app">: U; T6 V8 {3 l& e: M
  2.     <div v-if="type === 'A'">' U; T( o, R( m6 ?$ R7 V
  3.       A7 M% W" A: k# d: M/ M+ t
  4.     </div>8 n) y* h- g) {5 i  G
  5.     <div v-else-if="type === 'B'">
    , z5 n* U( |) x
  6.       B3 J5 A8 u( X% J! L# `
  7.     </div>
    # n' o# Y3 L5 d5 f. j; h
  8.     <div v-else-if="type === 'C'">5 g$ A% Q7 c1 A6 g" U. ]
  9.       C
    " P; l: l* }! f7 `+ ?6 ?
  10.     </div>
    9 T4 I! }( G3 G  X; s; c0 m
  11.     <div v-else>
    0 V! o) s9 ?" r' V* e. J( [2 Y
  12.       Not A/B/C
    ) y, G/ i6 i& N8 k( E2 s* W- O/ S
  13.     </div>
    8 v# u; W: C) E
  14. </div>" s  @/ ?# t% a& P3 u7 o  X
  15.     ! g8 T- w' t" ~) J% A, Q
  16. <script>
    0 r( b: Q) ^9 O6 u1 I
  17. new Vue({: W" Y& l( q' x$ C/ L
  18.   el: '#app',; @' x$ T% P: {9 ?
  19.   data: {7 b5 n7 J, K+ G$ G
  20.     type: 'C'
    3 P9 \* l* }$ D( j) J! W; T& d) ?2 U
  21.   }& N& {/ g9 U( C; J. i! c$ C
  22. })
    + ?  Y1 x% [# ?7 D) \9 N" I
  23. </script>
复制代码

4 a  s! K: L' k
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
5 B) v$ `6 \6 R: ^4 s/ S
  1. <h1 v-show="ok">Hello!</h1>
复制代码

# K) K& g4 c7 [- k1 l% z( h* q" r2 C6 h' r% C# n
' Y, j. A/ N' w! }4 A. F; J/ m
  D3 x. g3 p- {4 a- Y9 g; X+ F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 21:00 , Processed in 0.108700 second(s), 22 queries .

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