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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    # [) n" c1 H3 l+ G6 }
  2.     <p v-if="seen">现在你看到我了</p>
    ! G" s7 Q' ]$ D
  3.     <template v-if="ok">" G4 S& ]( v4 o# y+ ]3 S2 @' ~
  4.       <h1>菜鸟教程</h1>( _% ~7 L/ x) c; r4 C
  5.       <p>学的不仅是技术,更是梦想!</p>
    8 K1 {. i/ `% L  e" g1 p0 O% z; ~
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    5 X/ a. n* ]& k, w
  7.     </template># F2 t2 v; b1 f! h$ Q
  8. </div>1 X5 N4 p8 t3 S4 D
  9.    
    , S# k( k2 \4 a' w3 i1 G& p: A2 n
  10. <script>6 K, K8 Z# `1 @/ o# C
  11. new Vue({9 p, U7 s% q$ W! j
  12.   el: '#app',
    . Y5 B( Z8 R2 e, E
  13.   data: {
    : c& P; I- s1 P7 i
  14.     seen: true,
    . c+ M" Y) h9 E2 Q3 C" d
  15.     ok: true2 f+ G& L, {: I9 X, T# \
  16.   }/ q6 |$ O- u, F
  17. })0 U' q5 x- X# x- G0 w
  18. </script>
复制代码
7 F) j" ^4 M# B% R
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    # {% D) z, ?2 D+ [) h" o0 y$ r7 c
  2. {{#if ok}}
    0 D' l9 G$ Y7 B( u" t. F8 V
  3.   <h1>Yes</h1>3 B, ^. L+ A4 h3 {1 S
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

1 s7 ~/ M7 b& U0 J' o! {
  1. <div id="app">
    , q( r9 Z. C' X$ g! ]$ Z3 \" r
  2.     <div v-if="Math.random() > 0.5">% C4 T4 u1 w5 ~. t/ ?5 U' B
  3.       Sorry
    , ?9 q( R% F, Q' ?
  4.     </div>
    / V' i! x5 l0 O
  5.     <div v-else>8 N. V8 |: b  C/ G& L3 S/ Q7 [0 X
  6.       Not sorry8 ~0 n3 w9 F, w
  7.     </div>
    0 S, j* p8 s: ?: {
  8. </div>
    ! T$ x' |: l% ^6 d4 G: p
  9.     ( @: r) `! G  R
  10. <script>0 G) O2 c' {) e: N4 h( k
  11. new Vue({
    : y5 q5 h0 g  b" ^8 M$ @
  12.   el: '#app'9 P+ V  E5 P+ _$ ~" [) C2 F. v0 W
  13. })6 b% B" o$ S* x
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
" M- J0 C3 g2 l- H2 y
  1. <div id="app">
    ( U8 _7 v7 r0 R# l# k0 R) c, M
  2.     <div v-if="type === 'A'">
    - ^! ?" a: d' h3 c9 a. Z1 p  P
  3.       A
    3 S% x. f. x) ]1 B
  4.     </div>8 [% Y8 ]4 \9 B5 f6 _. R% f
  5.     <div v-else-if="type === 'B'">
    8 v1 B2 K! B+ q/ A
  6.       B
    & P' U4 E" f' S- n
  7.     </div>- b) J( j; ^" _  B9 m. x0 _7 G
  8.     <div v-else-if="type === 'C'">! Y$ o! U4 s  w: u+ k; Z
  9.       C
      @  ^5 _& A( c1 z6 C' V) b- K
  10.     </div>' ~5 X& q3 x7 k  Y, _. V
  11.     <div v-else>
    + f# v/ z8 _+ d5 b  o
  12.       Not A/B/C  J* i) x) M) w$ C
  13.     </div>
    - g" U5 z6 Q0 A* V1 ?
  14. </div>
    ! Q9 r& j4 u$ M9 D
  15.    
    , z3 @- n+ \$ T, \7 W
  16. <script>% A' h3 Z" J7 k1 |; _7 y
  17. new Vue({- I  D) d2 h3 G4 M- @: ]! H, z
  18.   el: '#app',
      d8 y$ N# }  c; Q8 b7 |6 f
  19.   data: {: ]/ {  ~2 v' d/ z: [2 V4 _3 U" \
  20.     type: 'C'
    ) V# V) i, b2 V' P. I
  21.   }
    5 {: h  s3 }5 p( u& |" s
  22. })
    , V& ?. {/ n1 Z3 V! ^
  23. </script>
复制代码
) ?/ o% e2 P3 o. Z. p
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令( L6 i& q+ _/ }4 \% l
  1. <h1 v-show="ok">Hello!</h1>
复制代码
. Y* K) e+ I' R" T/ l- T4 p
9 E* c( `9 V/ I2 |
: f/ C1 i$ N% q& R9 R  m/ e

' F2 E" T0 I' x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 17:20 , Processed in 0.061306 second(s), 19 queries .

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