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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    6 L) u5 V/ V0 a
  2.     <p v-if="seen">现在你看到我了</p>0 L1 r0 O' T$ d1 I0 F
  3.     <template v-if="ok">" g* d1 U- R2 l! a- b$ z1 S
  4.       <h1>菜鸟教程</h1>
      Z, H/ I' K3 u: S
  5.       <p>学的不仅是技术,更是梦想!</p>
    ) X1 q+ _2 x8 w+ t
  6.       <p>哈哈哈,打字辛苦啊!!!</p>/ f9 z  V; M' |2 L- K
  7.     </template>2 a/ \' T4 }/ k4 ~' u
  8. </div>3 ?5 P$ n9 o( \1 `4 o
  9.    
    % m( L3 X$ y1 R& P' Y1 }& v- o9 h
  10. <script>3 o8 K6 }3 \% u4 W
  11. new Vue({, R# r# k' Z! Z1 N: v7 D
  12.   el: '#app',
    & D2 R& l# P# o0 _
  13.   data: {
    ) [! r8 L" \8 J5 E
  14.     seen: true,) `; c5 s; z$ k5 p
  15.     ok: true3 k8 R( m, m% `! r
  16.   }
    # i$ z( N, H& ~
  17. })- M8 N/ L, m( J# B6 d) ~
  18. </script>
复制代码

0 I& \5 F& ]0 _: B6 e
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->" W5 G# l5 e, h, x1 X( V
  2. {{#if ok}}" c7 ~" I2 T! u
  3.   <h1>Yes</h1>. p  C9 j1 P6 @% Z) t
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

! R4 `8 Y$ B9 F# u/ w6 y0 @
  1. <div id="app">( A  t' n) E8 S* G$ w7 w
  2.     <div v-if="Math.random() > 0.5">$ p6 W/ N, E1 r+ S* U
  3.       Sorry1 A) ^/ j+ T! K+ T+ X
  4.     </div>% y# ~) Q/ b. L: f9 N& Z
  5.     <div v-else>
    4 i" b7 j. X$ ^4 _& U# t, t. u
  6.       Not sorry
    * S3 o* k% s* U# W# Y1 H6 V- U6 a
  7.     </div>
    9 h' ~$ ]1 R. g2 Y1 A% B  d
  8. </div>( S1 S, [1 L! k7 [! J! v
  9.    
    + i  p( X0 W* ~6 {% H
  10. <script>
    0 _, Q, ]: g$ T, C" M& ?; D7 }# ~& B
  11. new Vue({% v3 @: n8 f% v; ~3 g
  12.   el: '#app'/ L1 e) u$ G8 B1 P
  13. })+ n4 S$ A3 r% t0 V+ j) d( X: M
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

  P8 o: e9 Z# ?: V% Y! S4 |
  1. <div id="app">1 w# [  W' o2 m; z2 [8 P
  2.     <div v-if="type === 'A'">0 r! A7 \3 D6 X- ~) {( c
  3.       A/ [! e& Y; `7 R
  4.     </div>
    4 R0 U& K5 v  E3 o! p: [& ?/ B
  5.     <div v-else-if="type === 'B'">, p5 Y! j, f4 `1 L. N# x- n3 M
  6.       B
    . S) j/ q. y, Q- c
  7.     </div>
    1 E' o' s( O6 I7 F
  8.     <div v-else-if="type === 'C'">/ e4 z( N+ K) ~7 Z- L- ^
  9.       C
    7 v% }8 J' o* f$ j, [' R) H
  10.     </div>
    $ {5 i, M" C" z0 h
  11.     <div v-else>
    ; ]; E4 D7 ~6 F  }. i& r6 x
  12.       Not A/B/C
    5 U! |. J6 }# s6 w8 k# L+ ?
  13.     </div>
    ) U9 Q' j1 ^* h2 N/ r/ E+ }* x
  14. </div>+ @0 Q0 n) a  V
  15.       z& x  Z; a9 u: J
  16. <script>; {/ O( `6 _0 e7 K& y. ~
  17. new Vue({$ ^. `; W+ H- U; ], i' g" n
  18.   el: '#app',3 ]) [* v7 p1 Y) X
  19.   data: {! S: ^( ^/ Y; A  u* T/ n
  20.     type: 'C'
    2 t* J$ p0 Q" {: m
  21.   }
    ' K- Z; c6 z$ B1 L' E
  22. })
    ( l& Q# O) f3 e* w
  23. </script>
复制代码

  G' @( c; r3 n! R
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
, }& o9 h* D# j# n
  1. <h1 v-show="ok">Hello!</h1>
复制代码

( H3 J9 x- |: y. ^, r& E$ x
( `% v% g* s. X) G$ x& g$ z( @' h- L0 q3 h4 V3 q# [7 @6 ^; Z& o
1 A& G$ t: E6 v& y# a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 08:12 , Processed in 0.056351 second(s), 19 queries .

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