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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    ! Z+ h' Z' \1 ]1 h) P7 A: B
  2.     <p v-if="seen">现在你看到我了</p>  f& l( R* E4 o& S$ _1 J$ J
  3.     <template v-if="ok">
    ' ~& S5 m. I, I9 ~# b, P: \
  4.       <h1>菜鸟教程</h1>
    / I: d8 P& A1 @1 V$ e2 }$ C# D
  5.       <p>学的不仅是技术,更是梦想!</p>6 {7 D8 X8 C/ e$ s
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    * l1 V" h- M+ t  Q; o3 R  A
  7.     </template>) z& @8 u3 W# i* w+ h. b% \9 \
  8. </div>
    % H9 S% ]3 w4 s3 P
  9.     ( t, j- l2 [! t# O
  10. <script>( C7 e3 y: l6 c( y7 _0 R# g# u
  11. new Vue({5 O) _  D# t) f5 u1 Y0 s
  12.   el: '#app',
    7 m! X+ k5 m" ]0 K2 z  ^
  13.   data: {1 K* F7 P4 F" ^; f6 ~4 M
  14.     seen: true,# n) X- P( z9 M. o0 j( E
  15.     ok: true
    $ I3 Y6 i8 ^8 ~7 q* t- f
  16.   }* @& E* f( w0 z3 k# [# G5 X$ _
  17. })
    6 ^' O. j7 F  @9 {; `
  18. </script>
复制代码
9 _! u9 n2 M4 Y1 @! t
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->5 H; Z5 B/ ~  O$ R9 H
  2. {{#if ok}}
    1 ~6 y) A- w) f: Q7 ]/ F; E
  3.   <h1>Yes</h1>
    4 v' F9 {  r0 v! ^# O0 M
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
' }# o; b6 t% d
  1. <div id="app">) u: y- w! \$ V! ^" R
  2.     <div v-if="Math.random() > 0.5">/ \. t* N" M* p) o
  3.       Sorry
    + Q9 e) ~9 ~9 L+ b- g5 u/ A9 P
  4.     </div>1 N6 l& ], h( v# R1 a, H
  5.     <div v-else>
    : J% l3 d& o8 W* Y6 R0 ~- |, |
  6.       Not sorry
    ! Y% m( V4 w! H& r. F
  7.     </div>/ h' |3 M1 @7 x$ w9 b' I
  8. </div>
      N8 O( V7 B& D, a
  9.    
    ( ?4 ]9 c8 }# Y7 D! L5 J  k1 ^" s+ i1 {
  10. <script>
    ' i" `. d& @9 T! }. `
  11. new Vue({3 [. A, d1 ]# m3 H, X; k, F
  12.   el: '#app'/ e; V( W/ M, K  o) c& b
  13. })  z8 m- h$ t9 T# ^2 }2 i
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

- e/ W+ |* K2 A- k4 _* c
  1. <div id="app">
    + T/ ?' ~5 P8 Z# L0 Y3 o
  2.     <div v-if="type === 'A'">
    3 f( `% b, u% {, b- y& _
  3.       A
    / \" z* c5 \' r8 f8 r% O3 S) @, m2 \
  4.     </div>
    - ?5 a! V; b9 Q7 x9 m; @' j
  5.     <div v-else-if="type === 'B'">
    4 r; `. T4 z' c1 b# p, l; F) \
  6.       B
    ) q+ z; d$ c6 r6 v0 h- A5 I
  7.     </div>9 y0 `, {" o7 H; _1 k: S
  8.     <div v-else-if="type === 'C'">$ S% c) p. v9 ?: g2 o
  9.       C
    ! q1 z) Z/ ~6 n
  10.     </div>
    $ W7 Z) |( Z, K2 c$ n
  11.     <div v-else>5 D* C8 J5 P0 f) x
  12.       Not A/B/C
    : d7 O7 C6 n% q
  13.     </div>
    9 C: m: X- E- q# z( V( B
  14. </div>& m' W7 `5 n5 _
  15.    
    ( o6 p- w3 g4 E$ W+ o0 {5 }4 j
  16. <script>+ @1 E- q& ^6 }, p: w6 G" E
  17. new Vue({
    . g7 ~5 [# z; E3 H3 L$ Q) u  I
  18.   el: '#app',0 l8 z9 A$ m. C
  19.   data: {
    % B% z3 O0 p% X+ V6 H1 J, A7 v
  20.     type: 'C'
    % `/ ?' J7 y# v* n( @( H
  21.   }5 p2 f- Y# ~4 j5 |# ]% J
  22. })" J5 ^- `) r* Y) b4 p4 p; X+ X+ e
  23. </script>
复制代码
8 x3 s( }: w. i  N
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令  L. _# r& M& p
  1. <h1 v-show="ok">Hello!</h1>
复制代码
3 w$ x/ p, y2 y

. |% L, o5 t9 ]; w2 O7 ~. {& [6 E* j% Q
- c- p2 ~3 _8 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-23 03:30 , Processed in 0.112493 second(s), 19 queries .

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