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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">3 i* X$ r9 o/ a& M+ I- y
  2.     <p v-if="seen">现在你看到我了</p>
    0 T: m9 O, W) I' D) J" L  H7 l
  3.     <template v-if="ok">
    # @- G- j# m/ R$ c$ ?
  4.       <h1>菜鸟教程</h1>
    4 y+ E8 t8 s1 F! {3 ~1 |: F; [
  5.       <p>学的不仅是技术,更是梦想!</p>
    # H& F. ^( B) ?4 j
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    $ _* h* x3 B, W2 L& j% r
  7.     </template>
    5 `2 g5 @: G4 @/ Q# @8 _
  8. </div>
    8 {# |# n. V" s0 J, n* ], D4 U; o! m
  9.     0 O7 Z0 D8 X. M
  10. <script>
    ; X2 T  S/ {8 v4 N7 s9 q
  11. new Vue({8 M' B% X# R5 _$ A1 S+ {
  12.   el: '#app',
    8 o) o: o# j( W3 N7 Z
  13.   data: {% y. K% @# \" F0 u: Z( c+ d
  14.     seen: true,9 q0 x6 H- E9 W6 U& w; j/ L1 \; Z% z
  15.     ok: true' s1 i$ N. r$ I. ~! u
  16.   }" F5 i$ f2 ^, u, s$ e& w# Q
  17. })
    - U# A) B4 h& X( N9 e
  18. </script>
复制代码

7 L. m5 o" a1 a
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->: L0 w$ D, F$ u3 O
  2. {{#if ok}}
    3 Q  `, s. R" e) z2 [! X
  3.   <h1>Yes</h1>5 ^$ m7 b1 K  v$ o
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

9 ?7 D. O( y3 T7 x/ l+ o
  1. <div id="app">
    % m5 M6 ^: x) W) m$ M- S
  2.     <div v-if="Math.random() > 0.5">% i/ _  }( ^. L; Q- A3 C
  3.       Sorry# o" ?4 w& b1 e9 A' r: \
  4.     </div>
    3 O' |% B* a" C% q& M: N
  5.     <div v-else>
    6 c8 n* E0 s9 U# M+ ~' @
  6.       Not sorry
    4 ^, S# J9 d0 w! h6 z' n8 Z
  7.     </div>$ I# X$ _, c3 t, G5 m
  8. </div>
    + k0 Q9 q# _1 ~5 H* p+ k% d
  9.     / J3 r; j) @+ E; L- ?% k
  10. <script># R& i$ X! n1 r) v4 z7 v
  11. new Vue({
      m9 Q6 f$ a+ J, y6 U1 g
  12.   el: '#app'
    + c6 _. W9 s, X2 \
  13. }). }# Q7 H6 J( B) w( w
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
& R# Z3 @, V' B
  1. <div id="app">0 s$ Y- T) x$ j. g% N8 d
  2.     <div v-if="type === 'A'">9 P) X8 Y/ r$ |* O* S; H# Y
  3.       A
    2 L: M; B' a8 h# e1 p4 {
  4.     </div>2 `, v+ `8 @$ K2 W
  5.     <div v-else-if="type === 'B'">
    + i3 t: k1 V4 h9 j2 O8 F; N. M
  6.       B
    , ^% M, c( R& {& R! F) K0 p
  7.     </div>
    3 K* r$ J) q5 d% M
  8.     <div v-else-if="type === 'C'">
    , S& ]7 c* j% i; ~/ o! t, C7 g+ c3 K
  9.       C" @3 m3 z  c+ t& |" ~: I8 [% i" h
  10.     </div>4 |  w# ]/ ~5 D- M/ o* `# j
  11.     <div v-else>
    - m' t, B% F* C+ H" f7 D9 m! E5 t
  12.       Not A/B/C- y. H3 G$ l' y
  13.     </div>- |7 q6 A# Z% O6 Y& ?8 ?
  14. </div>2 h+ x7 |, m( Q2 ]6 c. o
  15.     8 @- I9 m' T, }
  16. <script>
    . P9 r1 f: e/ e& q  N; ^* n
  17. new Vue({
    2 {! P# T  i& w0 U  x1 l
  18.   el: '#app',% J$ i% c' p, H6 |8 b
  19.   data: {0 x7 C+ x6 r% \: o9 _- F- D
  20.     type: 'C'
    ; X* S. O) H! V3 L/ g
  21.   }6 `, k' q& v; x. Z$ m# y
  22. })
    . ^. h' f7 k& X" }& @8 N9 I
  23. </script>
复制代码

% A4 P& e  }& z- h+ O& f9 X3 W
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令* y( p, `% u# k
  1. <h1 v-show="ok">Hello!</h1>
复制代码
8 N3 d4 P4 G* V
' @+ r% M* e/ t" ^, [/ [2 v

; f. u/ S' D4 S1 X2 Y" ~+ \( n- g1 [9 y& R( J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 03:15 , Processed in 0.050000 second(s), 19 queries .

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