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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    " C  K7 p1 P+ F2 \* P
  2.     <p v-if="seen">现在你看到我了</p>6 v& q' {0 K  B' Z/ U& Z/ i# ?1 t
  3.     <template v-if="ok">
    / R) G9 }9 j* f( w' K# O
  4.       <h1>菜鸟教程</h1>
    3 Q6 [0 F' [' s  v6 s
  5.       <p>学的不仅是技术,更是梦想!</p>
    1 _! Y' i9 ?2 e  s
  6.       <p>哈哈哈,打字辛苦啊!!!</p>0 w7 N, P9 |. h( U$ R- M, E# y
  7.     </template>
    ) T2 T3 @  Y: L! G% R1 R4 a
  8. </div>% W' y9 o9 {$ O, h* [* N5 ?
  9.    
    ; ^$ g4 A/ s+ ^8 K% U6 p
  10. <script>, K7 W  ^4 N) J0 [% a; {  W
  11. new Vue({! ?  D" r1 F( }, }1 _
  12.   el: '#app',) U* g" |4 H9 n2 Q5 `& \
  13.   data: {
    ! y# t$ p6 a9 w3 v/ Z( V( f: M1 }' r
  14.     seen: true,
    & ?2 ^. Y( z+ v6 R) F
  15.     ok: true2 ?# ?- b/ v0 w2 L
  16.   }. E. U+ r0 `! A) n
  17. })
    0 L# g& N" w3 N9 U! M# R4 s3 E# ?
  18. </script>
复制代码
/ p3 N& H8 U% y# m4 Y
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    - H) g% O6 j3 V
  2. {{#if ok}}. A$ K5 L+ f3 G" I$ `* J
  3.   <h1>Yes</h1>
    2 _$ c* m9 v: v
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
5 |- O" l1 I2 m3 T0 w, ]
  1. <div id="app">
    6 w% @& \3 g! K# i. `) y8 J
  2.     <div v-if="Math.random() > 0.5">& t/ c; B' k" r: W7 F: h- }/ r
  3.       Sorry
    8 Q$ i- J" T; M) W  U  N" ^. A
  4.     </div>
    ! r$ W. K5 p# T+ N
  5.     <div v-else>
    - }) D: z; o8 q
  6.       Not sorry
    8 T4 C# o  S  W6 d4 X
  7.     </div>! W0 \+ W* S3 A2 R5 r* D* d
  8. </div>
    ! }& r* f& L# Q/ b) H! h0 ^
  9.     + I4 M* ?) p2 \2 ~
  10. <script>
    : o) r7 ~0 U- s/ d5 {& ^
  11. new Vue({
    8 }8 P9 a5 k8 T3 f$ j/ @
  12.   el: '#app'2 u1 _- O  o9 H6 D$ u2 ]7 j
  13. })$ {/ i: M3 K( C
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
  ~3 V! Q3 u6 M; _! i
  1. <div id="app">
    . o0 o* P1 _4 F, t% k
  2.     <div v-if="type === 'A'">
    % v- j0 E* y( I
  3.       A
    / _$ k' V. ?& H7 p; X0 N  n! S, M1 i
  4.     </div>7 y" E! s2 e* w( y- h6 v5 q6 ^  H1 k
  5.     <div v-else-if="type === 'B'">
    : z) }7 `. d' B9 y9 g. u6 I+ k
  6.       B) T6 K) F$ _2 Z1 B7 u
  7.     </div>
    8 b/ @! X3 M2 [7 a
  8.     <div v-else-if="type === 'C'">
    . D% {& x1 B% r
  9.       C7 P* |7 v  H* Y; s
  10.     </div>! [/ Y$ |/ b. W" D
  11.     <div v-else>
    % g4 X. l6 Z+ G1 y  I* N% R
  12.       Not A/B/C) c! L6 P% G( L* f
  13.     </div>' j2 A& S  {  w  ?
  14. </div>- s1 Y) T: ?( }
  15.       B# s4 v. M0 k9 q$ X8 `
  16. <script>
    3 H+ O% M! ~. N$ c
  17. new Vue({
    9 B) F2 l* W  w% {
  18.   el: '#app',
    $ k" C0 k5 m' F, y* s" G$ P4 U
  19.   data: {
    - t: q: n% j; N$ m
  20.     type: 'C'
    ; @( n, q3 N2 `0 ?4 N( C2 F: r) X
  21.   }# W& G, e0 y0 c. o. k" _; }
  22. })
    1 c( y5 c: W( n2 O7 z/ i- N: `
  23. </script>
复制代码
, ?( q1 \) Q/ j6 n4 t, l
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
8 ?. V/ m& m, ]8 C/ @. T* v) D* A
  1. <h1 v-show="ok">Hello!</h1>
复制代码
0 R, k( c; }2 A0 W

# ^: ~9 n1 n1 |* H  a! k  q% u4 p' ~; T8 R) ?' Y' H
6 d( l" L3 _# x% \+ X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 20:57 , Processed in 0.121655 second(s), 22 queries .

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