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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    3 O8 B! j2 j! m- H$ `( _
  2.     <p v-if="seen">现在你看到我了</p>( V4 t) I5 ~0 F# k3 i% u
  3.     <template v-if="ok">
    8 n. a3 E* [5 ?
  4.       <h1>菜鸟教程</h1>
    $ J* L# ]: o. Y! S& O
  5.       <p>学的不仅是技术,更是梦想!</p>
    ' Y* O% f0 `; U4 ]. i
  6.       <p>哈哈哈,打字辛苦啊!!!</p>7 c2 ~4 A: P2 v& R7 C7 @2 D
  7.     </template>, p9 s# ~3 k, f- f3 B1 V
  8. </div>+ g# U9 r' m, d* v, h& j6 M+ ~0 C
  9.    
    ' z; I4 [: c+ W: f, e! W* M- T
  10. <script>
    2 B5 n) n5 @2 X  ~
  11. new Vue({
    7 o0 B8 \, p; B: w) ^+ k* [9 K+ o
  12.   el: '#app',4 F; ~8 z9 _1 S; y7 L
  13.   data: {( ~8 R2 B* V3 t7 i  ]8 H
  14.     seen: true,( x+ H& a8 _3 J" y5 M4 a
  15.     ok: true+ X+ j4 d  Q0 d2 N: X( S  b
  16.   }" X2 k; F1 k. y6 R+ e
  17. })2 v* Y) W2 v7 V7 ]2 B1 C/ x
  18. </script>
复制代码

. N& b' ?! q( B5 ?) x/ R7 `# V& r2 J
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    - {$ D- s" H' W, J7 s
  2. {{#if ok}}" ^7 [$ ~: G" s& z
  3.   <h1>Yes</h1>- ~% S0 U* q  [  w
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

/ \7 M: C3 F+ |3 ~: F, A3 q$ o
  1. <div id="app">9 B* R/ e* F! m& E
  2.     <div v-if="Math.random() > 0.5">
    ( O# B" r: R/ i8 w
  3.       Sorry
    + R4 l, y& D  u1 B7 @  Z
  4.     </div>
    ( N+ y5 n% J2 x; s7 }/ U. o
  5.     <div v-else>
    1 N; f" Q& C3 E% A; i
  6.       Not sorry7 f$ N: J+ B- B7 L. u9 S
  7.     </div>
    : k, ~( D3 g% ]+ Y
  8. </div>; S7 u0 I; n, u6 A4 E% I! k
  9.     & w1 J8 N9 B/ q
  10. <script>) ^! H( ]/ |6 N, a
  11. new Vue({
    2 B4 L% {# n, z) N# V
  12.   el: '#app'% s. D8 U' J- \: X
  13. })# H* _8 I8 v; q  ~
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
, z6 j1 n7 a( |4 C9 I7 X
  1. <div id="app">
    , h* @2 `3 i& E! e! r% B; h
  2.     <div v-if="type === 'A'">
    9 L+ J% `  h+ Z3 a  r  f1 M
  3.       A* v. ~- T/ G7 n. J  s
  4.     </div>: l8 [. @$ I& t! ^) _  W
  5.     <div v-else-if="type === 'B'">
    2 e9 L6 S! ^4 U7 G$ D
  6.       B- ~; L% l7 O1 X& S: o
  7.     </div>$ I; e& Y0 P5 j) D6 k
  8.     <div v-else-if="type === 'C'">& g: Q, G* d+ j- i. Y
  9.       C! b* q# }6 K% @" W7 W( E, p
  10.     </div>, i2 ?  p, d5 a9 A  f
  11.     <div v-else>6 L; B! y) B: g( f) a0 Y6 ^
  12.       Not A/B/C! p+ J' w+ h' o; L. G$ I; {
  13.     </div>
    $ j5 {0 I* S9 h4 O- {: e3 g8 }
  14. </div>+ ~* e, j& x& [* u7 t
  15.     0 x. J# Y$ d7 l) \( i
  16. <script>  I+ g6 T2 N! Q& M
  17. new Vue({
    9 R: @) n6 y6 `; \" h+ K6 \4 ^$ n
  18.   el: '#app',& i9 s  E; h, V, g& l0 a/ d
  19.   data: {7 p4 E) O- T, l
  20.     type: 'C'
    * q# m* V: r0 k1 i! S* k$ ?2 P
  21.   }
      B: u1 c2 z' ?' a
  22. })
    6 v# d( U' r. K) h* N
  23. </script>
复制代码

' H5 p- c! z0 C- E7 ^7 n
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
# G$ W3 t! q6 W
  1. <h1 v-show="ok">Hello!</h1>
复制代码

0 k0 Y- J$ g  K- X1 u/ g( X  i" A+ r/ K* P
; K3 m! N3 P9 X* h5 A$ o' X0 V

  h" e% t* Y/ f' y: a/ `4 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:10 , Processed in 0.062760 second(s), 19 queries .

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