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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    . B$ q- R- j$ m" ^4 J( O
  2.     <p v-if="seen">现在你看到我了</p>
    - [9 I+ ]* I, L! c3 |
  3.     <template v-if="ok">: r/ P; ]" ]+ Y. u2 x  r! J! V
  4.       <h1>菜鸟教程</h1>
    / J5 d* i  w; A4 E
  5.       <p>学的不仅是技术,更是梦想!</p>% ]  ~. V" e" M( o3 k/ C
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ( R% A& m2 V& E
  7.     </template>
    $ k7 `* f, a' y4 k4 G5 C  G# T
  8. </div>' K5 i( t) c; Y& y8 o, Z
  9.     7 ?! T5 y% i$ {! j1 D
  10. <script>
    3 W" g9 m4 Q# d* H1 @+ a! m& W, [6 L
  11. new Vue({' ?. w8 k7 V9 f- G( V; k' \9 H
  12.   el: '#app',. {( ~0 j0 o- x$ Z
  13.   data: {
    " D  ~% M6 C/ G2 z. a: n1 i
  14.     seen: true,
    / g: e' f& O+ W6 M7 U# C3 u/ R5 e
  15.     ok: true
    6 L+ c) s& J7 w. G! h
  16.   }
    1 M! t4 g3 N$ T) x' g& [
  17. })
    2 W9 [1 y+ h: c+ X
  18. </script>
复制代码
5 |) m" \* h& A' z% f' u$ A
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    9 Q8 [' s# Y! T) K% F$ w$ Q
  2. {{#if ok}}
    6 `( Y3 m$ d! F$ h. L
  3.   <h1>Yes</h1>
    ' f0 G* ]* p! C  N/ n, Z) |8 [4 Z
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
' ?, L) H& b& ^* i' Y
  1. <div id="app">+ h4 @( x. `! S! K7 S
  2.     <div v-if="Math.random() > 0.5">
    $ Q  w3 y  H. `# @
  3.       Sorry
    " t3 G" U! V2 k* f$ y0 Q4 r* j8 q6 q
  4.     </div>/ T, p' u2 ?: i* W9 _% V
  5.     <div v-else>
    7 q6 t5 G4 a6 H. ~6 ]/ c3 p1 B
  6.       Not sorry
    7 a6 r* J5 [; c. S
  7.     </div>. M$ S$ g4 E; }" Y
  8. </div>
    ; F. t8 R: E& t
  9.    
    , |: P0 n9 B+ W/ p
  10. <script>" @1 s5 }) n+ Q* h* D
  11. new Vue({
    1 l* F) s, ~6 {# v' a
  12.   el: '#app'
    - J4 [* Z7 }6 `* Z3 A$ ]
  13. })
    7 _, ^. K+ p' _
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
4 L' V' B5 I! `6 `" }5 E
  1. <div id="app">4 m3 c( g! m' t+ r/ @
  2.     <div v-if="type === 'A'">1 Y8 b- s& n4 u6 H6 R
  3.       A
    * ~" d, S+ I& X, Q
  4.     </div>
    $ k6 Z* X! m, G9 F0 j0 L4 f9 I/ m
  5.     <div v-else-if="type === 'B'">2 `  @. D7 L$ \0 A; G- c
  6.       B# m% _9 ^/ R9 V) H8 p6 a; ?* ]. p
  7.     </div>& g8 K. e& G8 r+ m
  8.     <div v-else-if="type === 'C'">
    , j3 ?3 A# l0 X3 y2 w" l% ~( N- E
  9.       C
    * P( K! y) b' H" ^& q1 C4 A( o
  10.     </div>
    0 W! P4 K+ }- ~; c5 Z7 D
  11.     <div v-else>) _; d3 z$ H3 z; G& `% [1 O
  12.       Not A/B/C1 |  n( J+ }5 G& p
  13.     </div>
    0 z9 L8 ^: P) S! B9 J& O1 c
  14. </div>
    1 X. B! x1 x) b  v! D- U  h
  15.    
    + `. ]( L, X3 c; ~' R. W3 Z
  16. <script>
    & r/ i3 z3 q* c* o. L; l+ z
  17. new Vue({
    7 t, h# f6 Z$ Y5 U( k. Q
  18.   el: '#app',* r! E3 o- [! b2 _& }: c6 ~
  19.   data: {
    # f( D, m2 D! a' x* O* w: N
  20.     type: 'C'- O  a+ L& _! o
  21.   }5 @7 p. z" @3 h# d. v, c
  22. }); S( l# n# s4 X) k# n3 U+ w
  23. </script>
复制代码

* w2 G* R  |5 h2 L) q
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令5 X% F/ |- L0 J1 f% Y  _) L* @
  1. <h1 v-show="ok">Hello!</h1>
复制代码

  {1 N& \4 e/ X. c/ m& f$ U
0 f1 H) }" ]) s* Y$ K% D. p7 u! M& S/ k* B6 ^& h' {2 e
1 C; N* U  v5 n; p! ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:41 , Processed in 0.071935 second(s), 19 queries .

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