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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">, q: N6 I2 I4 X6 Q: a5 }1 f6 m0 Q# A
  2.     <p v-if="seen">现在你看到我了</p>
    . ]* C- K' p( ?9 e! k4 @
  3.     <template v-if="ok"># M0 C: B+ D) e: V: [
  4.       <h1>菜鸟教程</h1>+ l$ k' O/ k% i/ v  ~* U
  5.       <p>学的不仅是技术,更是梦想!</p>( r% a" O( q6 L6 d3 p1 ~" j
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    3 B) `- X0 d  a9 A' r
  7.     </template>' J7 }8 f3 c, |9 V8 G4 O9 i( W
  8. </div>8 J& T  i$ B, E# ]& N1 G7 }
  9.    
    0 V( D. m0 V; h4 u: ^$ p9 `3 r
  10. <script>0 M* f$ J# ~: f
  11. new Vue({
    + @" f5 p0 w9 o& C
  12.   el: '#app',$ ^" e- @9 |& ~/ c
  13.   data: {$ z* d7 N4 F6 a4 Q5 ]: r! W. P
  14.     seen: true,
    7 T! l  I) D5 \1 P- x5 x
  15.     ok: true9 t* L4 m* k  \( U- J. f/ ~# A/ p7 }
  16.   }: e8 Z7 o- F* q) ~9 X
  17. })2 n1 T6 e- x( c- @- W" ~
  18. </script>
复制代码

  |! o  X& C4 I1 |
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->$ t# ]9 J$ m! L+ e2 ^
  2. {{#if ok}}' ~0 o8 h* O$ B$ k9 h3 f
  3.   <h1>Yes</h1>
    . v! r& h' ?0 q5 t; T/ i" W5 B9 d
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
' k9 r! J" j% T% @) I2 z0 M
  1. <div id="app">( S6 Q1 T5 x8 S9 Z" c0 r( U. ~
  2.     <div v-if="Math.random() > 0.5">+ ^8 d! [6 {% L0 R8 W# Z& a" M- O2 \
  3.       Sorry7 I& Q& Y) u; T9 B( F5 c
  4.     </div>
    - g! F0 W( ?& K( d( {" c8 |
  5.     <div v-else>
    ' b5 t  a( K; v: l2 l2 b! I7 t1 [
  6.       Not sorry
    " T; p- n7 H$ _) c5 b) q
  7.     </div>
    $ w+ L9 Y1 Z1 T) |, j3 `1 M
  8. </div>
    9 ^* g7 B; j! K7 W' U( I
  9.    
    * q; U7 @: H( {" {5 w& ]4 }
  10. <script>7 k- H, l' n& }: M% x
  11. new Vue({* C% H; }- z+ n/ S2 y
  12.   el: '#app'
    ' n7 L* A# h# v& o9 m/ ]  |
  13. })! n9 ^9 m6 F$ ~% d. w# O4 q" @
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
. U* F8 Y8 n9 d/ l+ S
  1. <div id="app">0 C& [$ F' V( H/ W4 y2 ^& w) z! H
  2.     <div v-if="type === 'A'">! Z4 x( b0 A. X7 b% z
  3.       A
    & a  S$ L  \; X- o# p2 Y
  4.     </div>: {$ \/ O" L0 T" L+ \5 v6 e
  5.     <div v-else-if="type === 'B'">
    4 M/ B$ \" l1 }) P9 c6 @
  6.       B7 p) D1 b: w4 s+ t4 s  I/ W# o
  7.     </div>
    , |9 Q( f8 W1 T
  8.     <div v-else-if="type === 'C'">
    , Y+ w$ O; G7 Y; i) e' z' }4 I4 o
  9.       C
    3 ]" y" {- M3 x4 B" H
  10.     </div>& w$ `" C, }( k, D
  11.     <div v-else>
    * b* I: d) ~0 P% v# \
  12.       Not A/B/C5 p9 h% m% D# \9 E$ B- s: K& c
  13.     </div>
    % E3 S4 n  K8 J3 d7 Y
  14. </div>
    9 l' _6 z- }8 ~3 ]: y! `* h/ s
  15.    
    & S& `6 O# T5 ]
  16. <script>/ j8 K* G7 `0 b5 r
  17. new Vue({
    5 \4 N; l/ t% w# q2 w& [
  18.   el: '#app',0 z1 p/ i+ ]2 |
  19.   data: {; K4 T* |8 n7 B
  20.     type: 'C'( i: T# e/ p0 s8 l
  21.   }- u- W2 v, k/ a/ @4 g8 S. J" E. P
  22. })8 S# \1 G! {. k' T( Q
  23. </script>
复制代码

& N: y: ^# }8 v! j' A6 A
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
5 e" B; h; Q9 X
  1. <h1 v-show="ok">Hello!</h1>
复制代码

) v1 @' h  h7 k- U! Q7 K
$ h% ^, K! g9 M4 M  S+ ~0 {- w1 G( T' r, v$ s, P3 K

6 O' ]. j8 o0 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 16:02 , Processed in 0.052545 second(s), 20 queries .

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