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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    2 P3 X! O% T4 Q: }, o
  2.     <p v-if="seen">现在你看到我了</p>
    ; T' N" ^0 D4 F/ s
  3.     <template v-if="ok">
    % y6 T8 \: `/ N! Z* J
  4.       <h1>菜鸟教程</h1>
    9 [/ w$ h9 i' e& P0 I1 E
  5.       <p>学的不仅是技术,更是梦想!</p>9 W8 z  X8 i) V) ~5 m8 m: \
  6.       <p>哈哈哈,打字辛苦啊!!!</p>8 J4 p9 s' C/ y3 E  I8 N( @  _; Q
  7.     </template>
    * Z8 X% J0 @. B5 v6 {& X
  8. </div>
    : r: |  M6 p6 S( h
  9.    
    / W$ Q- k+ z$ T5 y% M1 K
  10. <script>
    : S# x. i. O7 c3 l( g/ h# _8 N
  11. new Vue({2 G$ o& h# u* U6 w( \1 K8 b  C
  12.   el: '#app',
    ' ~3 b+ D" Y' Q
  13.   data: {" c: A3 O. u" P+ d5 M
  14.     seen: true,
    , {, H7 p! {$ O/ O) X; E7 u* d& z- R
  15.     ok: true
    5 W/ R* }  V7 A" h" p
  16.   }
    6 f) D! E$ E4 }' C
  17. })
    # H9 m- u+ M% D# ^, j4 r8 g
  18. </script>
复制代码

1 J. S5 V8 A6 g, N
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    3 u  C1 {1 H/ _* _/ q
  2. {{#if ok}}8 {; K3 r3 B4 X/ Q- g2 j. o( G
  3.   <h1>Yes</h1>/ u# U! Z/ M6 o4 t+ @# B3 Y
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
# F0 s, P, E4 c2 E4 ~
  1. <div id="app">: u1 R7 J9 ?" G, Q# l" \4 g
  2.     <div v-if="Math.random() > 0.5">
    6 [- T( _, Q4 [  r
  3.       Sorry
    2 V: W2 a; C" |& h& l5 A0 B- |
  4.     </div>$ S0 I$ q4 D8 ^  {3 q# Q. b
  5.     <div v-else># Y) [& x" _% d" X
  6.       Not sorry
    " M" D9 C2 _8 C/ [$ A& e6 j2 W4 ^
  7.     </div>
    ! ]1 v( b3 ?; `* K: I4 ~
  8. </div>3 }0 ~1 V" J- }2 {) D' q
  9.     9 }% t: s6 S+ c1 I
  10. <script>2 s- A1 X: n% p
  11. new Vue({* ~9 ?  q- v2 K
  12.   el: '#app'1 P; _- v, V: Y3 ~+ N* V
  13. })7 Q3 i& n2 J: h' P2 P( T5 C) `
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
- a& F! |+ P1 U2 N3 b& e
  1. <div id="app">
    ! J: C/ p5 C% Y6 j2 V. V* o9 J7 l) v8 M* Q
  2.     <div v-if="type === 'A'">8 ^6 |9 m( u- v$ j
  3.       A* s! X! r1 t: B! A/ N# X4 {$ M
  4.     </div>
    0 [- X4 a1 h9 O, }. M
  5.     <div v-else-if="type === 'B'">
    5 `' S! e6 f2 \1 r
  6.       B
    3 @5 r& \+ U- c3 M+ ^' a
  7.     </div>  d: x: t2 H  g9 u& _3 T0 e
  8.     <div v-else-if="type === 'C'">$ ]3 g( w0 v8 E' R* `* d
  9.       C& L# u8 z8 k; u) K; C
  10.     </div>
    - O, l. ^3 z& ?2 T( f; w: a
  11.     <div v-else>! E1 S* z4 ]% [, ~4 \- |
  12.       Not A/B/C
    5 H- f9 z- U1 Q+ ^9 a% j7 a; h+ J
  13.     </div>: z, Q: F! P% R2 Q
  14. </div>
    * {8 O$ F2 c6 g+ Y+ `, g1 `) F
  15.    
    8 t5 x% V$ O% |/ I& S
  16. <script>
    / g" k7 Z5 |  f* U
  17. new Vue({; ~( @( k# T9 M' n2 y2 ]4 V
  18.   el: '#app',
    1 ~6 c: M5 H* ~: w& C7 c
  19.   data: {7 n3 c2 ?  \4 [$ u1 M
  20.     type: 'C'
    1 E  k' U- [- G  a6 A" b
  21.   }
    $ Z: ~8 Z" P: [) t
  22. })
      ^3 Z7 p  l& C$ z
  23. </script>
复制代码

0 R7 M3 B* m+ r* f5 v8 r& x# @$ u( B
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
2 Y8 O& A8 |" h' H: |: F
  1. <h1 v-show="ok">Hello!</h1>
复制代码

0 C/ U( a3 U) Y* H; c' q0 |0 C" u3 s( R) r$ m& A" P

$ s; \1 y( F  q
) b0 P+ @1 ]. Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 15:30 , Processed in 0.078437 second(s), 20 queries .

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