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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">$ L( q& m; _0 T: O9 \* L  s! l7 I
  2.     <p v-if="seen">现在你看到我了</p># l' v, w7 S: o. `
  3.     <template v-if="ok">' p5 r" a: U" x8 \2 g( y
  4.       <h1>菜鸟教程</h1>
    4 G! d# g2 }2 v# P: @% a3 _
  5.       <p>学的不仅是技术,更是梦想!</p>
    ' N9 L. j( x* m! j) E  R
  6.       <p>哈哈哈,打字辛苦啊!!!</p>1 r6 \) V" c6 w! H: E) }
  7.     </template>
    % X% h! e, O, a5 Q5 r. x
  8. </div>5 r; c5 P0 j) |( e$ ?( k# g
  9.     ; @* |3 Y8 R6 B5 _
  10. <script>
    9 @; a' S/ S" Q' V/ n. R' N
  11. new Vue({
    ' H2 X6 w/ k3 T" e
  12.   el: '#app',
    ; _4 ]$ e7 ?1 S  h; t( N& X2 }& j  o
  13.   data: {! w- l2 I0 x# c6 y
  14.     seen: true,
    , Q5 @  \; N1 k
  15.     ok: true, i8 H7 g/ t% B: }9 g8 y
  16.   }7 d0 F; K/ |# x- [
  17. })
    , x5 g( M0 q- p6 Z# ~2 [8 h
  18. </script>
复制代码
3 X+ `* H! L2 [' d) A% L  E% X: D  I
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->% c* q, s. Q7 t& n. f! @! s( Y+ j2 Z
  2. {{#if ok}}
    ! f. a" @) c6 q7 _6 K
  3.   <h1>Yes</h1>
    9 Z5 u  z: g4 R. `( j, ]/ D
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

/ E; l3 \2 \" i! y6 n0 C
  1. <div id="app">9 u) R8 E2 J+ D8 ^
  2.     <div v-if="Math.random() > 0.5">' R( k3 f2 |9 q  f' P7 I) j3 K
  3.       Sorry
    9 A% Y" e! Z& L# q# U% O
  4.     </div>. i+ @# K8 u  ^2 }
  5.     <div v-else>
    $ j7 N& h+ N# \
  6.       Not sorry& ~( a) f7 z0 a" H" ~) E; d+ H
  7.     </div>
    8 i8 R6 ?4 d  `- T+ K2 x9 w0 e  |2 B* t
  8. </div>, M! h4 y$ A  D& F( B# V# n0 J
  9.    
    2 ]& `. U3 ~' W  Q4 I6 c
  10. <script>2 A6 t0 a7 o" t1 S. d* R9 r
  11. new Vue({3 k! O* N% a/ H2 O4 l0 q% H9 L! g
  12.   el: '#app'  A$ M, a8 T$ A* U! l
  13. })5 p9 h& w1 ?' |9 B
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

, |8 I" v6 u2 t6 P6 m. H
  1. <div id="app">; U) {, C# X2 Z
  2.     <div v-if="type === 'A'">
    9 M9 I5 Z; J* ^# F  ]1 ]5 T( J
  3.       A2 c2 f* Y2 A/ h) t% f3 z  b
  4.     </div>
    - F  Q( x3 n2 j
  5.     <div v-else-if="type === 'B'">
    : Q8 n) C: x, g% p3 |9 T9 r
  6.       B
    - l1 J0 e3 k2 ~" R# N6 Q
  7.     </div>
    0 A  b$ I/ Z$ F' e
  8.     <div v-else-if="type === 'C'">" j+ o0 V6 Z  S) U4 d
  9.       C
    7 s5 @9 C: ~' B) h1 ?4 _
  10.     </div>! V2 Y" K. i( e& `' F
  11.     <div v-else>/ O' p+ g+ _0 g: W& G# V# b4 X9 R
  12.       Not A/B/C% A$ s+ N. B( F- \4 r. ~: C! p
  13.     </div>1 o! l. ]0 q. G
  14. </div>
    ; u) o& x' `3 K; o( P) M) V8 f# M0 t9 h
  15.     $ L9 @. C0 z; Y" L
  16. <script>
    : W" I2 a' V) T7 l1 g( B% n
  17. new Vue({! L4 t- O3 c% K- R" C0 `
  18.   el: '#app',
    * C' Z; E! y% y: M6 {( q
  19.   data: {
    " `3 a3 D) m1 P' T
  20.     type: 'C'
    ' ~4 Y! {9 e! Y2 ~  v* R
  21.   }8 q( ^/ G: b$ x  W
  22. })
      v0 D& E- e( l& V7 F
  23. </script>
复制代码

1 Z9 Y/ P8 s1 Z
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令( i* P$ _; H" X  }
  1. <h1 v-show="ok">Hello!</h1>
复制代码
, l6 |1 v) h4 w4 z6 j" t9 r. I
, t( y+ L, H0 S$ ~
, `9 b; I! `( r, |2 i
. Z8 x0 q  y$ f% D" G3 O$ _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:03 , Processed in 0.144257 second(s), 20 queries .

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