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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    / C! I& K3 o/ `& k4 x
  2.     <p v-if="seen">现在你看到我了</p>
    : C0 ]' C/ k. A  b; q  J
  3.     <template v-if="ok">
    4 S' }( M$ D& w0 j
  4.       <h1>菜鸟教程</h1>/ y6 H* R$ M# ~0 L' H
  5.       <p>学的不仅是技术,更是梦想!</p>
    * c' j4 y/ h3 v
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ; w+ R5 `/ Y5 m, L: l+ C
  7.     </template>+ u  B# Y: P# k: d' ~8 U# t
  8. </div>
    % j( M; a3 a& n8 _" |. f8 c
  9.    
    * ^2 E3 B9 }( V8 X. A% ]
  10. <script>
    2 e! k4 ?* ?% _- P( c1 Z. X: D
  11. new Vue({) K) G* X* r) S) ~4 ?% u/ P
  12.   el: '#app',
    3 E& |& y" o# Z3 }1 i- m. h% Q: H1 w" x
  13.   data: {
    1 H7 o/ s# v9 n1 M
  14.     seen: true,
    ) L. Y) t3 b# A, ?
  15.     ok: true
    * n, @' L3 F% t+ }
  16.   }  s( W: E! ^9 T( S2 w/ S
  17. })
    - x) d; ^; y/ Z/ g$ K" P3 z5 w# \" r
  18. </script>
复制代码

- p3 H# x3 S) ?( H( l$ G* n9 H
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    + I4 ?3 T6 x# E2 n& c
  2. {{#if ok}}
    ! X: y; n& d% V! \
  3.   <h1>Yes</h1>. k' t9 k% f! \8 M. m* y- m" [
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

* W, _: K0 }. c) l% y+ D
  1. <div id="app">% h: ?; E4 P5 h/ W1 ?) K% T
  2.     <div v-if="Math.random() > 0.5">
    : r4 z! w7 B$ I0 D
  3.       Sorry, y* E5 ~0 ~5 t0 R
  4.     </div>8 D* K  K# N9 q& m1 B6 s3 U5 e
  5.     <div v-else>
    0 ^2 |" U. t, l$ ^* N
  6.       Not sorry4 e0 H- P8 l* K
  7.     </div>
    ( d8 V) O$ l. P# D7 q8 Y
  8. </div># j5 L% K$ F" J) `0 r6 C
  9.     & ]9 k4 R$ M, @/ B$ H
  10. <script>* w# X- b+ k4 R
  11. new Vue({
    , a$ }+ A: S; R; K+ m; |0 e+ @
  12.   el: '#app'
    0 G1 p4 r; v* D1 T3 \
  13. })/ ^, N. N$ ]: E# j
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

, X2 y+ Y# t7 R0 V6 l
  1. <div id="app">: a, V( M5 t; G3 ~2 Q- L& s/ ]  i3 T
  2.     <div v-if="type === 'A'">
    # V% G3 D% U9 j6 v
  3.       A
    6 `! a3 P/ ^9 {1 V7 _
  4.     </div>5 A$ q, c" Q" R' ?, [$ b
  5.     <div v-else-if="type === 'B'">
    * a% H$ y7 k# I# v* m# s, K; [
  6.       B
    8 C8 K4 v6 j$ y; v: m. s
  7.     </div>5 H1 n  f4 n8 U
  8.     <div v-else-if="type === 'C'">
    & O/ m; |/ t' R
  9.       C
    & }- A8 n' G: m) X$ B# q
  10.     </div>* }& J* m+ ?% z* G
  11.     <div v-else>
    % }# N6 l* @4 _( I9 n" l/ O
  12.       Not A/B/C
    # I: B2 w% z, R9 G  b  T' r) D& {
  13.     </div>
    % i0 y0 N6 @3 |4 U6 }1 l% e
  14. </div>
    3 z8 Y* ^/ _: y2 G8 l6 R4 p
  15.    
    0 k( L  _. l  [
  16. <script>2 h) [  }) T. g; n( f! w1 ^% [- t: _
  17. new Vue({
    8 O3 a1 Y) D8 D( |/ \1 j
  18.   el: '#app',+ `0 y: k5 W3 G; T
  19.   data: {9 v. ~4 M( s6 q! y: d, [5 F
  20.     type: 'C'
    ; {5 c* [- @7 O
  21.   }
    1 A% A7 O% O0 z3 |& g
  22. })' b& M, i' ?3 g
  23. </script>
复制代码

8 k4 u0 b) W; e1 j8 F7 X
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
0 D1 k8 @+ T3 d
  1. <h1 v-show="ok">Hello!</h1>
复制代码
- g3 k( _; D$ B( n1 X; Y% D9 Q
' i7 O8 ?9 p: U6 \
  _7 M8 D9 |6 J, |& y! }+ f+ ?" ]

" g( V+ y  W( A# k9 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 11:48 , Processed in 0.057255 second(s), 20 queries .

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