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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">, i) q. _# c, X9 n, T$ b7 f
  2.     <p v-if="seen">现在你看到我了</p>
    ' p. o$ z8 A+ K1 A
  3.     <template v-if="ok">7 x% \: x3 I! w9 ]. d0 x; E
  4.       <h1>菜鸟教程</h1>
    ; o/ c* s0 f' `, Y9 w5 u6 B0 ]' D
  5.       <p>学的不仅是技术,更是梦想!</p>( i" ~( U6 t, _  ?, c
  6.       <p>哈哈哈,打字辛苦啊!!!</p>9 [+ V. N! G5 P+ @8 q
  7.     </template>
    * \4 W' j$ f+ x3 U( ~
  8. </div>! z. h& T; @  K" z5 a
  9.     ) o8 w4 }- p' _; A2 t" z6 W
  10. <script>5 W8 R0 n6 o/ G- [1 G
  11. new Vue({
    + E3 [6 p# X; y: i3 f2 L
  12.   el: '#app',
      K' j& ]# I0 m6 g& v; H/ C( ~/ ~0 V; `
  13.   data: {4 Q9 L6 H; k# _* j1 L# S
  14.     seen: true,
    $ y7 ^. w# @* s4 E& @% X  f
  15.     ok: true5 |- c5 f# H7 M7 W' C
  16.   }
    + m% c7 G  y, Y- e, f8 w' H
  17. })8 O1 V* q# N/ V
  18. </script>
复制代码
2 z3 E( m& t1 O4 U4 G
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->1 M& D' I5 P) j5 Z
  2. {{#if ok}}' P; G3 ~/ [; y0 g! X: W
  3.   <h1>Yes</h1>
    ( k: c2 A5 z) v4 j! F
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
; Z. [+ r9 Y+ D
  1. <div id="app">
    8 K1 A& |4 C9 g7 F& S. N( Q, F" C
  2.     <div v-if="Math.random() > 0.5">
      p: y- s4 R$ F% [! t
  3.       Sorry+ ?6 W# J% K3 ^, S. L6 C- P
  4.     </div>
    ! m; V: D% e: J$ s$ \0 K2 v  C
  5.     <div v-else>
    ; l# }8 P1 W$ J
  6.       Not sorry
    & k. D/ F+ j4 I& ~
  7.     </div>& o' A3 |, F) F& s, h' v/ R
  8. </div>
      o; B+ S( W9 h! D
  9.     9 g; j$ f; z3 V2 G0 {
  10. <script>2 k0 f. y- w0 E2 g* I! |2 B8 _
  11. new Vue({4 @; ~9 Y2 A9 ?3 H  G6 ?5 |
  12.   el: '#app'
    + P+ Q, E, u" m; f$ |+ E& r
  13. }), o3 T: u1 G) W8 q
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
2 C# M! _6 I# @5 J, R0 U
  1. <div id="app">
    ) d) T- G2 T* }2 G' u, @- N
  2.     <div v-if="type === 'A'">
    6 x* ]6 z8 [7 ^+ f2 v5 J! J+ M
  3.       A, s6 |# b* d2 o: O3 O
  4.     </div>
    9 M/ G" V' W$ ^6 B6 r
  5.     <div v-else-if="type === 'B'">+ i# h+ g0 R5 w- b! Z" }. N
  6.       B
    ! d  D- r6 a* \: \; p% W
  7.     </div>
    7 C& i: [4 T  k% m1 {) }/ p9 }4 I
  8.     <div v-else-if="type === 'C'">; c0 V6 k, i* a( h0 }
  9.       C! s- Q: y2 q- A
  10.     </div># L, w9 F. Z  P% s% |
  11.     <div v-else>4 n# W7 ^  a: D, Q
  12.       Not A/B/C
    " H9 [) y4 ^$ d0 c
  13.     </div>
    , P& n9 j5 s7 v1 S& U6 d+ F6 P
  14. </div>
    * O! \5 z+ C. T8 x
  15.    
    ( V2 G0 l& M/ p
  16. <script>7 K2 y) a$ l  G. c9 r: n% t
  17. new Vue({
    5 B/ Q& ]7 v# U! }
  18.   el: '#app',  o6 g% W! y- V' l0 j+ y! Y, i
  19.   data: {5 `4 x# g  {1 I
  20.     type: 'C'
    & B1 H" Y4 U9 ^4 R
  21.   }
    # U! x3 c/ G% @% I0 P
  22. })
    0 @$ b! y% m* h6 x1 m- _1 U0 M
  23. </script>
复制代码

# o' W7 n# h" y8 r
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令% ?$ c  s; y0 M  X* e: X- U
  1. <h1 v-show="ok">Hello!</h1>
复制代码
4 f# ], @$ P3 C4 G( s

4 P3 H1 h8 F5 x$ Q2 d% a8 {( v& t% U9 G
6 A& J/ _$ e4 f* j
7 j" m" ?4 M) v0 ]3 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 03:11 , Processed in 0.055316 second(s), 19 queries .

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