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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9780|回复: 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 p- ~) J% |( g4 P7 t
  2.     <p v-if="seen">现在你看到我了</p>
    6 J" n3 p- Q, N5 p. K9 P! g' F
  3.     <template v-if="ok">
    & x9 T$ h. w& B) N- P0 @# n
  4.       <h1>菜鸟教程</h1>9 ?; M# D' `( B; _2 B0 O1 E
  5.       <p>学的不仅是技术,更是梦想!</p>2 I4 J7 A2 [2 k& M) a' G6 j7 U
  6.       <p>哈哈哈,打字辛苦啊!!!</p>) M4 B$ j& e! Q" K! z5 y
  7.     </template>" s; a3 ]4 j  z  J; A
  8. </div>
    - d2 y  A% r6 [% ~$ W/ [# S
  9.     0 L8 W. e1 y5 T7 a4 o6 b
  10. <script>
    + }+ t1 c. P' {' G9 q
  11. new Vue({$ {" g5 t. t5 X5 w  z/ [) W! X* L
  12.   el: '#app',; f" j2 }3 W% k6 L
  13.   data: {
    ! u, E( u9 o2 ^5 }. J
  14.     seen: true,
    ' r2 j$ [$ ?3 J2 q6 z
  15.     ok: true
    7 N1 D" |2 q, h! k1 A* T
  16.   }
    : }# M0 n6 ?- e# M6 |9 M
  17. })6 I5 l, k: I" |/ ?2 m
  18. </script>
复制代码

8 i& W. h7 v9 ?# z5 C
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->  S/ n$ a  j4 K* l; ^
  2. {{#if ok}}' g; i7 _& G7 D& p7 m! Z
  3.   <h1>Yes</h1>
    ; ?: J% j) N& T) F1 ^7 F
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
0 e! X  g" d$ H# {' [" c/ o$ T
  1. <div id="app">3 N' I3 d3 f. d# W1 C
  2.     <div v-if="Math.random() > 0.5">
    - ]; T3 t- G1 p( z6 n$ v* V
  3.       Sorry& J: F( o: \1 V: ^9 m
  4.     </div>
    ; T6 T8 ]1 T: [' Z
  5.     <div v-else>% L% P' n- E/ U& H+ O
  6.       Not sorry
    2 F$ D0 L. W8 `& E0 C: q
  7.     </div>
    - ]8 `" Q, E; z' I- t* H! X
  8. </div>
    1 H" C/ }# I( j' Z+ s; H
  9.     & V, M+ c+ ]$ `/ z; j& n' c
  10. <script>
    % n+ |4 U9 }6 J' E: ]" O
  11. new Vue({
    3 T- s& ^; |: I9 D: S5 u
  12.   el: '#app'
    ) g- d+ S+ h7 b
  13. })' b; G" n6 B( A4 ~
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

0 \/ C3 i" @6 G$ M5 {1 X
  1. <div id="app">  d  Z& ]3 i/ o5 ~, A, f+ g- Q8 T* K( S, R
  2.     <div v-if="type === 'A'">& f8 n) B9 A: k; `# C$ A' E
  3.       A( y. f2 j1 O4 D) n6 e
  4.     </div>
    & t% g; E6 }" y5 k1 }
  5.     <div v-else-if="type === 'B'">
    % O) Z; D/ h5 N' b4 H7 L
  6.       B
    + m$ J3 w- ?  I8 w; L' o3 p
  7.     </div>
      y! w# l+ z; l2 l; l8 h4 a+ ^
  8.     <div v-else-if="type === 'C'">( a$ Z* R, u* A+ ]' v' P! ?2 B3 ]4 Z
  9.       C
    + P6 Q  q" E. d
  10.     </div>2 d/ R) F& D# V0 ?, S
  11.     <div v-else>. n* e3 Y' ?/ P# G" |
  12.       Not A/B/C
    # d$ Z3 ]4 ]) q( ?5 h
  13.     </div>& F% u6 f" E, k& X% Z
  14. </div>
    ! V  J7 {2 f" L9 e6 U
  15.     # Y( w( l4 f6 v, U, {
  16. <script>
    & S7 p  @1 _* Q7 ]: a: v
  17. new Vue({9 a& L: T/ S- f
  18.   el: '#app',/ T/ A  @- f2 O' w, V0 n! q
  19.   data: {* Y# W0 D5 u2 V
  20.     type: 'C'
      D4 G3 W, V' j' l. J
  21.   }
    * d! x8 ]! [8 w0 O5 B
  22. })
    ) R. L( u5 Y, y( g: h
  23. </script>
复制代码
) i) C. r! w7 P5 C9 w. s: `& ?& U
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令7 U1 D( x$ a+ I6 U8 ^
  1. <h1 v-show="ok">Hello!</h1>
复制代码

4 p- }4 a8 s6 v+ a7 {" g. t9 `4 G: `3 a7 l  P

4 {3 I$ T7 H1 k  v7 ^" n
9 v% R0 \$ ?0 x2 u1 s4 W9 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 13:41 , Processed in 0.148620 second(s), 19 queries .

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