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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">) j: @4 I/ k. O4 R6 `/ c
  2.     <p v-if="seen">现在你看到我了</p>! h* Q/ y' R7 \2 G9 c
  3.     <template v-if="ok">6 f) S2 I" ~5 f6 Z0 v: R
  4.       <h1>菜鸟教程</h1>
    : D% b+ V, S  n8 u: Q6 o
  5.       <p>学的不仅是技术,更是梦想!</p>
    : j' M4 @) D( t
  6.       <p>哈哈哈,打字辛苦啊!!!</p>! {* M5 o2 {) D
  7.     </template>6 s* p  B: T3 A& W4 ~
  8. </div>/ H6 p# n. Z6 }4 y5 C' q; ]
  9.     6 z9 M2 L  n7 o9 E
  10. <script>  L+ y% z- ?- c! |
  11. new Vue({) a. b$ F3 O2 a9 [2 F$ ~7 H
  12.   el: '#app',
    - J* W3 W7 p& M2 r. {: x. `) L
  13.   data: {. d& V1 a8 P) E* u) X! j; C2 v; J
  14.     seen: true,5 b( L+ x5 R. j+ P" A
  15.     ok: true( V" z4 m3 m7 e3 [2 ?. R+ J
  16.   }( z3 O9 f# k4 ~
  17. })' h9 D( @* r  X7 F4 J" Z! s
  18. </script>
复制代码

/ N+ z9 I6 }( k6 I2 R$ A, g
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->( O# F8 F9 E' b1 F* W3 n" ~
  2. {{#if ok}}6 W! K+ K  P0 g8 X) N7 g( I$ T9 p
  3.   <h1>Yes</h1>( w. v9 v6 v; v% P1 c( z5 s
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
) y" t! g$ Z: l1 V# y2 r! u
  1. <div id="app">
    # A7 [( y6 t) L' r5 K, y
  2.     <div v-if="Math.random() > 0.5">: `/ d( A) Z/ M& A9 e
  3.       Sorry
    ' q! |4 C( }; F6 t) y& Y
  4.     </div>
    / H  K2 W: s8 I( J0 T
  5.     <div v-else>
    " F2 \- d; P$ f5 J
  6.       Not sorry1 [/ a: q$ ^! [7 u
  7.     </div>
    + |! [8 Y* ~+ I! D8 ^5 \' q
  8. </div>
    4 L! P: |& ~$ n. V
  9.    
    2 r- x& g9 t0 ^
  10. <script>/ F$ Y( Y  `3 l  F/ C; l/ }  V
  11. new Vue({
    ! f" u& @! |) F+ D
  12.   el: '#app'
    9 h& D7 Y6 c& @% E. p& W$ J9 ]
  13. })
    ! C  Y8 u, i: k, F+ D$ e
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

, }) w( |: z: T
  1. <div id="app">" U7 F* s- e& @: k, u5 Z
  2.     <div v-if="type === 'A'">
    : p9 i7 N8 b. |1 B6 y: d
  3.       A1 h5 \8 x, w  g. U' |
  4.     </div>
    ' w9 r  v' Z1 \4 G. z) A
  5.     <div v-else-if="type === 'B'">' q- Q3 m: z3 k) }8 V3 E
  6.       B
    * P$ C- F1 o$ F. W
  7.     </div>4 l% m( O# H7 N1 S$ \
  8.     <div v-else-if="type === 'C'">
    , d" D* U/ s) o$ d* L1 F$ F' z
  9.       C; v8 |+ R! q/ o
  10.     </div>
    3 V4 ]1 q- [$ f/ Q$ L6 k! e
  11.     <div v-else>
    % M, k  U& O4 D9 |; n$ K- W" E
  12.       Not A/B/C
    ) n( i3 U! k/ J. \9 L1 P% j
  13.     </div>
    " w& g7 G# \( f
  14. </div>
    + [- ^  S( M8 P/ p7 O5 X4 n/ l
  15.    
    1 g0 V0 R7 }* ^) _
  16. <script>$ N$ ~) n  z) ^" y: v1 E9 ~  t
  17. new Vue({
    2 L% s& N% R+ t# d
  18.   el: '#app',
    ! [3 `; w$ J4 p  r! r/ L
  19.   data: {$ N! W3 z. t/ T* C+ x* d
  20.     type: 'C'
    4 a* P$ F# I- ?; u  ~
  21.   }
    ( {( O" h/ k$ I$ g
  22. })
    ) p. X6 N; W9 v; f6 N6 Z3 S- Z% \" t
  23. </script>
复制代码
% Y5 a5 P6 g8 x, S
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
- o4 ~1 y6 \0 _' H8 j
  1. <h1 v-show="ok">Hello!</h1>
复制代码
* w9 {5 l$ i% I' T! @6 o: ^

. M, v. u; R& I5 i$ o
: v; `) w0 L' w: J* }& g, g9 s( r  r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 17:25 , Processed in 0.075397 second(s), 22 queries .

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