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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13978|回复: 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! v% y6 M4 J$ V" G3 I# q
  2.     <p v-if="seen">现在你看到我了</p>) x9 V. }4 v- I  G* C1 u# ]
  3.     <template v-if="ok">
    2 C" e& [( i% x' N
  4.       <h1>菜鸟教程</h1>
    5 c: {% B: G4 h) }) N
  5.       <p>学的不仅是技术,更是梦想!</p>
    0 z9 s- y) k# r; i. }( G9 D
  6.       <p>哈哈哈,打字辛苦啊!!!</p>" X% J3 N8 }1 ~! Z
  7.     </template>
    & t. u: N) Q2 p  U1 g# ?. [1 h  C
  8. </div>' f/ e1 R& Q1 X; u: z/ G/ V
  9.     ; F& b2 Q9 V7 X4 K8 Z' v. f- Z( F
  10. <script>5 L) V* S! s7 W: ?% {: C5 z
  11. new Vue({4 P9 p% O& k( n! b" Q  J! A
  12.   el: '#app'," [. j( f1 J- O7 j$ U) Z
  13.   data: {
    : W8 \0 Z0 w4 o- j+ v/ m
  14.     seen: true,, i. r8 Y+ m) X4 t/ Z
  15.     ok: true
    ) q* G: b# l" O8 r, ^: g! O* |
  16.   }
    ( b8 o' c, G2 z* h
  17. })
    4 V% ~6 g/ I% H4 ]& x2 O9 c) t8 y1 X
  18. </script>
复制代码

* _3 w6 {" K: {" d% m# W3 b
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->" D/ p1 ^) U3 m6 V0 F
  2. {{#if ok}}
    5 B% _+ T* m0 L
  3.   <h1>Yes</h1>
    . O$ A5 m+ W  I! Q9 n# e# {. ^. \
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

/ ?1 [) d* b# b! H# k" ?1 d/ B
  1. <div id="app">) D. ~. k* @! O' y
  2.     <div v-if="Math.random() > 0.5">: x6 k8 I# h$ A2 }
  3.       Sorry
    - ?" J/ p. }% }
  4.     </div>
    3 N7 O+ k- x9 W0 m4 Y8 M
  5.     <div v-else>! ]% a( ^2 M5 c  O
  6.       Not sorry5 U$ M1 A5 z! c% \! n
  7.     </div>$ K6 D! N+ [! I1 g' z. W
  8. </div>& L4 j1 O' y' V  B: h, l
  9.     " x4 {& P) f; ]& j/ }5 r# O
  10. <script>
    " P/ U, n) S" z% B7 A$ c: z
  11. new Vue({# |' Y4 ~% ]2 M# ~$ X
  12.   el: '#app'% B  L1 [8 m* J. B, E# u6 H
  13. })
    3 w4 ?7 N0 }* q" `" a
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
7 }+ Y" V5 n: @& m5 R
  1. <div id="app">& }; }6 `* C! A& X! a! w) ]
  2.     <div v-if="type === 'A'">
    , @. s0 G8 ?* J/ ?6 X) O, H
  3.       A
    % X  I5 p3 l1 |. w6 [1 a% s3 r6 l
  4.     </div>
    ' [9 P! u+ j# k: S1 W2 e; u4 J" d' H
  5.     <div v-else-if="type === 'B'">
    3 z$ N$ F/ L$ l' A/ \: r) L0 ^
  6.       B4 J$ d  x+ n$ U4 ^' ^, |
  7.     </div>
    , e9 P( h! j1 n! ]
  8.     <div v-else-if="type === 'C'">7 U8 ]7 S) {4 ~4 R
  9.       C3 B( ^1 i4 j, F! h
  10.     </div>  [) w) x4 L0 {
  11.     <div v-else>9 q& d3 \8 U4 p2 y9 I8 k
  12.       Not A/B/C# C7 I) w5 v0 @- E; o: r
  13.     </div>. v# A' z+ s, j0 y/ c% ]
  14. </div>
    ( A8 u7 U, o! Y- X6 g
  15.     9 f! g9 X: u2 T( R, e- U
  16. <script>
    7 {1 O$ f4 `8 s- e4 r
  17. new Vue({3 Q% M( ~6 a) {8 @$ I
  18.   el: '#app',6 m7 x2 b  h3 L- J
  19.   data: {5 m0 W; E, h( e6 \+ W8 j4 Q
  20.     type: 'C'
    5 i. G' b/ r2 S9 z: K
  21.   }' J% B; J! b9 P
  22. })
    4 q+ g1 |+ K; h
  23. </script>
复制代码
- b0 U* o; h, }( h4 A
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令# w, i3 M/ o: Y" M7 G
  1. <h1 v-show="ok">Hello!</h1>
复制代码
+ E$ {0 T, p9 a# f; s
8 H/ x8 ]. D* b4 j

/ s) u8 D5 m! i3 \) ^5 C! ?/ ^" s  e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 19:55 , Processed in 0.063621 second(s), 19 queries .

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