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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">. ^1 o/ |7 n9 ^# u. w
  2.     <p v-if="seen">现在你看到我了</p>
    0 A/ Y0 L& J. b: o0 h
  3.     <template v-if="ok">1 [5 G# y1 V4 Q, ]5 t$ L
  4.       <h1>菜鸟教程</h1>3 ?3 C" b! ?* p& g! o8 V
  5.       <p>学的不仅是技术,更是梦想!</p>" ]) m8 S2 F* c! e1 X* e1 Q
  6.       <p>哈哈哈,打字辛苦啊!!!</p>/ |# i2 j4 K- o5 ?4 x# g
  7.     </template>2 _' e4 s# J7 `0 I$ e9 V( V4 [
  8. </div>
    7 Z+ t0 H' V$ D& C/ l
  9.    
    ! L% Q" V' P& s
  10. <script>
    : P) J7 ?' S& c/ h/ L- Y" {: F
  11. new Vue({
    : p; ]" `# M! a- [; q5 Z* w) f9 \8 v
  12.   el: '#app',
    0 Z3 |- {+ @8 [- A
  13.   data: {9 C) ?, g( @7 i& B: B! d6 N
  14.     seen: true,
    ; E2 Y4 ~( B& S- ?$ C- s+ e) C
  15.     ok: true
    3 ^* m6 `$ ~( L; J0 T. u% W) N3 A
  16.   }
    4 x: f0 |" u- K% h+ [
  17. })2 H6 y* d9 \7 G* _" P
  18. </script>
复制代码
' |& c. C. p( k# w
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->; L* n+ Q; o  p; W3 ~6 O, A
  2. {{#if ok}}
    ' k# z: r+ C! s9 J$ p. R* v
  3.   <h1>Yes</h1>) Y9 ]: s$ o) l; l5 D
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

) T) \" c# q2 z/ y; E/ `0 Z
  1. <div id="app">
    - ^- E; w$ ^9 }2 d/ v* V
  2.     <div v-if="Math.random() > 0.5">& L; s6 l, _- k( O* b' B
  3.       Sorry
    ) q2 N) _$ e4 z' m; W2 i1 ^
  4.     </div>- s+ k) G  N0 F  ~% \2 M5 [* K* H" A
  5.     <div v-else>
    - C! U$ g  s$ O% {1 v  g7 R% Z
  6.       Not sorry
    * [* e5 `/ }& S5 F# f9 }
  7.     </div>
    4 D2 U5 L& U. k# A& k
  8. </div>
    : q- J+ O& p+ B/ t
  9.    
    4 E; ~2 T+ x4 R& k, B$ S' O
  10. <script>- _& K( m/ K" J1 O# {* R9 d
  11. new Vue({, g% [4 x( y/ q  V3 O7 m
  12.   el: '#app'
    . v% h) f; K- S3 A
  13. })
    " u$ n* M' ?- X  z# ?8 u- E) q
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
( K& E; m2 x( R2 b
  1. <div id="app">
      a# ^- V' c) U& {) x3 l% ]
  2.     <div v-if="type === 'A'">
    : O: }3 w# R  Q0 c
  3.       A9 O( X8 Q5 M7 @' f: v2 F' |* B
  4.     </div>/ K' T7 A0 b9 W7 v  Z  S
  5.     <div v-else-if="type === 'B'">
    ) R1 O9 {1 k* J  O: B. h$ F
  6.       B
    $ I& B) S. ?9 Z6 n3 t" ?' N9 d1 z
  7.     </div>
    : c) f9 S0 j& s8 f2 \% @
  8.     <div v-else-if="type === 'C'">
    ' X# I" A  f7 v/ p
  9.       C
    5 ~% [* v: l: @7 }
  10.     </div>: q& W5 Z7 C3 O; S
  11.     <div v-else>. L9 w' V6 U4 u7 B$ g
  12.       Not A/B/C
    0 k* K, K5 X- @$ }" e, ^9 K' G
  13.     </div>; o) a2 _0 }/ w: p7 ~
  14. </div>
    % [. O$ w1 F/ A2 \( E
  15.     : Z' z% ~5 e' t4 E9 X! Q" K1 c
  16. <script>
    0 R( k. X, x" C8 k/ z0 C2 V
  17. new Vue({
    9 {# P9 H6 g' d8 q0 v! M
  18.   el: '#app',
    6 ~2 j; L7 |+ e5 ~0 u% u. S! h3 D
  19.   data: {9 ?+ F7 D4 J6 ?! [0 K, n
  20.     type: 'C'8 t) Q5 n1 c7 ~0 U+ j
  21.   }) N; V# f! y! w' V
  22. })
      V( P$ ^. l1 [' X
  23. </script>
复制代码
+ ^3 [+ _$ {9 z, b' v' j! I
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令/ V0 c& V( p# m. [" N4 [
  1. <h1 v-show="ok">Hello!</h1>
复制代码

# z0 l+ }& B- j7 A) [# {# U6 h6 d' |; C0 `: q1 _; U1 E' h- F/ X
8 j0 @" {; u( h3 G# u8 \

5 }( c9 ?6 j7 b) `! {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 15:02 , Processed in 0.045628 second(s), 20 queries .

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