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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    - N1 c7 c8 a$ Y3 E
  2.     <p v-if="seen">现在你看到我了</p>
    + ^) p, i6 e! O/ H: g& t- j8 X. z
  3.     <template v-if="ok">
    1 O+ g' }0 D- y0 y, m% h
  4.       <h1>菜鸟教程</h1>
    5 c  d$ X2 }/ b2 ?8 o. ^0 D
  5.       <p>学的不仅是技术,更是梦想!</p>
    3 [7 d9 z( f# B8 Z
  6.       <p>哈哈哈,打字辛苦啊!!!</p>) h9 g* p. V1 D- X9 i% W/ j
  7.     </template>
    & k& p& X5 @. a7 M
  8. </div>; i' n* f* `. A( }6 w
  9.    
    & \. R( _# g4 c+ {1 A
  10. <script>
    , H) J2 U) G6 k. i; l
  11. new Vue({
    9 W% D: o* [7 P  t
  12.   el: '#app',) b; J4 A# q4 k7 P" i: W
  13.   data: {% G- J1 A& s5 M
  14.     seen: true,
    0 ^& D# m# d- P) w# h2 @8 a1 X
  15.     ok: true7 ~2 M5 {. s3 l7 h: }: B
  16.   }' z; t7 k2 }! p, v5 Z* e& v+ F9 _
  17. })
    , Y/ r' k) D  k  k; h7 u
  18. </script>
复制代码

3 o: p/ Z, Q% }, [% b
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    + M% B$ H. Z) o& B7 `
  2. {{#if ok}}; ^' F& {( X" |- R* a9 s
  3.   <h1>Yes</h1>% F2 h. Y7 ], b/ V
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
1 v$ K( [  m4 |8 m" \( K1 Y! Q9 d
  1. <div id="app"># J5 b2 u, q* |8 L
  2.     <div v-if="Math.random() > 0.5">
    8 }# o* {: I) B, a
  3.       Sorry
    1 f3 j# `% W8 [% w8 a
  4.     </div>
    9 L& L2 G% h1 S5 p' `$ v/ s, l
  5.     <div v-else>
    - G( N; `, x+ T! t( o0 B
  6.       Not sorry: \/ H, x! D6 l8 {8 [
  7.     </div>0 O1 }* \5 w2 m4 k( y
  8. </div>/ ^4 O1 }8 O$ |  m8 p3 i
  9.    
    0 q3 k% v4 t/ u
  10. <script>
    ( o- n( x8 o: m& Q" L) X; k6 G7 ?
  11. new Vue({$ q3 n( P7 T# e/ z- [( k  A
  12.   el: '#app'
    ) t& M* h: ^7 W1 M3 y: x
  13. })7 T' k0 R7 ?0 f! K9 [% V
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
1 K  ~8 B8 e) B. Y8 Z
  1. <div id="app">, m+ n  o: P) |- u5 [# L4 j
  2.     <div v-if="type === 'A'">
    ' r! w- m8 R& L+ q, C3 b
  3.       A
    + M' X; H" N" E* R
  4.     </div>1 F9 Y, a# r1 _9 @9 ]
  5.     <div v-else-if="type === 'B'">% i  ~; G3 `* }9 I' T5 ~3 N
  6.       B' k" Y9 F* C; c+ }. k4 J
  7.     </div>0 I3 b8 g4 W1 ?/ R' D* s2 \
  8.     <div v-else-if="type === 'C'">6 ?3 J+ a2 h( ~# `2 W4 u
  9.       C
    + w4 `. v7 e9 M0 M( v
  10.     </div>
    . {4 E9 z) Z  Y0 }, V& P. K8 Z) M1 ]( i
  11.     <div v-else>
    . j* w& d6 ]# P( s6 n2 W  u/ w! a
  12.       Not A/B/C
    5 j% t+ Q% k1 o. b1 O3 I
  13.     </div>& Z! z( T. {% B
  14. </div>
    : U+ I" ^- p0 o. Q8 h% b3 T
  15.     , U" M; X# Q& Q* y% U
  16. <script>
    / w' O( T0 }: A1 _5 }5 \9 R
  17. new Vue({
    9 }1 C( z2 o0 U0 S  g
  18.   el: '#app',
    9 P. C# s1 ~* {
  19.   data: {( c! y9 c/ x% p, z7 z
  20.     type: 'C'
    * D% |" x- n$ `$ Q4 w9 \
  21.   }$ U5 M$ ~2 v% [$ `0 q! z. L5 G( I+ W
  22. })4 d' C) r& j4 W% o+ g( Y
  23. </script>
复制代码
1 P+ `# n0 I) w- D0 w
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令/ \5 i0 x6 h0 R2 M' Y6 `! S7 }' Q7 h
  1. <h1 v-show="ok">Hello!</h1>
复制代码
" N# x3 {7 [; V
( S: Z! k5 ~3 g- Z  H5 W. H

  d; `8 L) [6 Y# G/ o. z( |0 @* p  E- f' L+ x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 18:24 , Processed in 0.073468 second(s), 19 queries .

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