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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    8 t* B1 B% J/ Z8 f! G/ }" X$ m
  2.     <p v-if="seen">现在你看到我了</p>
    # A5 V' K- ~. Y6 M7 q* K, \" K
  3.     <template v-if="ok">
    , \4 B; {5 J% w# z% E9 _& E
  4.       <h1>菜鸟教程</h1>' c7 j( D& G! k; N3 Q
  5.       <p>学的不仅是技术,更是梦想!</p>
    ( i$ Z2 A* C2 [- f
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    1 N& w. D5 t+ ~9 \* t
  7.     </template>
    - S" S) Q. |8 @1 Z  R0 g" f
  8. </div>8 D5 i: b4 H' Y" w. M6 v# ]
  9.    
    : ]% E0 I5 U$ d( O* W
  10. <script>0 c2 K% [( }6 j# l4 k7 g& M+ i
  11. new Vue({
    . k( Q1 L( ]! S
  12.   el: '#app',
    - b6 E3 f( _) O9 w
  13.   data: {0 U  M* ~$ P6 Y3 v5 w  m0 s) V
  14.     seen: true,
    / p* h/ D+ \) _7 D  v- l
  15.     ok: true  ~* q! t2 V; U, ~! }
  16.   }* {1 Y5 D, E6 |8 B5 T
  17. }). ]* K* K5 h: [3 [! L
  18. </script>
复制代码

* K# ^. [8 ~# ]  @, V4 }0 J( M4 `
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->- E5 k. i6 e7 l" {5 B1 a9 z
  2. {{#if ok}}
    + [$ {( q6 y; z
  3.   <h1>Yes</h1># U4 T1 A& E  x" D# o. c' G' o
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
6 `2 F/ D4 S! ^  I
  1. <div id="app">
    ( v! p& ^. f& ?
  2.     <div v-if="Math.random() > 0.5">
    ; G6 _4 S  R# x* ]
  3.       Sorry' k, B8 ^" _$ {8 @9 X
  4.     </div>0 h0 t- w, R# D6 I! \
  5.     <div v-else>/ D5 |* t5 P: q; s) D. E
  6.       Not sorry+ ~" ^8 o0 H2 |  \; M
  7.     </div>
    : c8 ]2 O; u. n4 s! `
  8. </div>8 S: w( S+ P1 `. f+ E
  9.    
    $ X1 [  v, ?6 Y
  10. <script>
      ^3 ~! [& U7 C- \6 B4 @
  11. new Vue({# I/ F" M4 r$ x% G
  12.   el: '#app'. `( K. x+ ^: ~8 q; m, t1 p
  13. })3 |7 @2 M9 ?, ?- A
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
- q, t: R2 u/ h  U+ z4 w) F
  1. <div id="app">
    + e0 N" W' M/ d
  2.     <div v-if="type === 'A'">! a$ ?% ?4 I; X
  3.       A7 w' }7 n; u, N- o, {
  4.     </div>" p( {5 s' V8 `$ G* @2 q% n2 L( h5 s
  5.     <div v-else-if="type === 'B'">
    * E2 }1 m1 f6 g, O9 p& I
  6.       B4 a( E' [: ^* L* d8 d5 t! l# Q
  7.     </div>
    1 u: p& o6 F: r7 R4 k9 w
  8.     <div v-else-if="type === 'C'">
    % K" r/ y8 r( a' p* l
  9.       C
    4 O: ?$ H2 v2 i+ P7 o
  10.     </div>6 ]! |- ~) H" d7 M/ J- I9 W# \
  11.     <div v-else>! x5 H5 b& J# X. i
  12.       Not A/B/C
    " w3 A% K3 d3 C) Y7 N. Q$ d
  13.     </div>3 a- A! k6 n# d% b; Q& Q. z+ T9 j
  14. </div>
    & q& \% H$ |3 W$ X
  15.     + K. ?  L6 r. ^  E2 B  ?# G
  16. <script>* f: `  }4 }* E
  17. new Vue({
    " n. `: J( U8 h1 Q8 ~/ z
  18.   el: '#app',( k4 J2 ~5 c7 L: S
  19.   data: {
    3 K4 X6 {# D# i  |9 F
  20.     type: 'C'
    ) Q+ b3 |. T* a2 J. r5 |9 `
  21.   }  G$ w' H1 Y- s
  22. })  M5 k2 k  a, W
  23. </script>
复制代码

* r( c8 C  \$ U$ L$ Y$ P
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
- C. C  Q& S  Q, P) B
  1. <h1 v-show="ok">Hello!</h1>
复制代码

6 Y+ g2 Y! F, e( J' P/ T# ?" d$ g. {6 _$ j. }" i' f
1 V( M, u- l& F

- i: h/ G1 t2 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 16:17 , Processed in 0.057986 second(s), 19 queries .

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