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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    6 c0 v# o1 Y2 [- T
  2.     <p v-if="seen">现在你看到我了</p>: v) L8 S; E& \. @
  3.     <template v-if="ok">
    # m& W0 k4 k# m+ ^0 ]$ P% h
  4.       <h1>菜鸟教程</h1>. F3 q- S% y8 x& V3 T* a  _0 x
  5.       <p>学的不仅是技术,更是梦想!</p>$ _, O3 Z' \4 C/ T& Y- u9 y
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ' s! R5 v2 t- N
  7.     </template>( v, b. N7 C7 T: v, d, Q0 q$ ~
  8. </div>- ?0 Q& a0 ?8 `7 q6 w9 L
  9.    
    4 r: o* i* F" l! R& i  x
  10. <script>
      w1 M9 J/ x* g( \' n) \' c9 Q8 c
  11. new Vue({
      ]& u2 q* A9 J
  12.   el: '#app',) Y! u2 ~  ]# I3 T
  13.   data: {
    : [6 W- K! g7 v2 f- G" Q0 C$ T+ I
  14.     seen: true,
    3 d" n* _; B% p& s1 ^7 e) h
  15.     ok: true! f0 d( ^* _1 ?4 [. h; h* l
  16.   }
    ; W4 Q$ M' _7 N' ]
  17. })
    / c9 q8 Z0 |; T7 [& y
  18. </script>
复制代码

3 C0 ~' E9 ]1 n* B
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    . C8 a, ]+ V4 ~4 N* O; |5 l
  2. {{#if ok}}+ E0 U! j; E7 @* x; l3 I
  3.   <h1>Yes</h1>
    - @1 l! w- N8 P; A* u
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

/ ~( ]  [9 J- J7 }
  1. <div id="app">
    4 u0 s/ a. X; B- Q
  2.     <div v-if="Math.random() > 0.5">" J4 P3 w0 C  y: Q; F
  3.       Sorry% Z% f# K- \: Z- c/ v9 B
  4.     </div>
    ( U! G) W/ D$ a3 n8 G' I2 m
  5.     <div v-else>9 r/ n+ {" {0 `5 h5 r
  6.       Not sorry; s" d- p. |' V5 I. a
  7.     </div>
    9 @- K8 [. }3 K8 _
  8. </div>7 E# E& J# |8 ?  _3 a
  9.     5 [0 K4 `6 |% s
  10. <script>
    ) ^) _% k1 u. R4 M! \1 {) n8 w: b
  11. new Vue({( i( D4 j8 O" c6 Y: p- C
  12.   el: '#app'% f9 c" D) E9 h9 V$ e
  13. }), E3 k% f4 ~0 b$ c
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

6 |1 q' j- N2 m
  1. <div id="app">$ p/ l9 q) N4 H" c
  2.     <div v-if="type === 'A'">
    1 ]0 n& |: H+ |- z
  3.       A
    1 `: {7 O1 H7 [' z, x8 S8 M
  4.     </div>
    0 i8 n8 O+ c2 S8 l4 S
  5.     <div v-else-if="type === 'B'">' `$ i8 n$ v& @$ }2 c" v# g
  6.       B4 S: z9 R. x: h0 w+ s' n
  7.     </div>* `0 k# G1 h: A+ ~8 K0 L) A: ^: K
  8.     <div v-else-if="type === 'C'">
    $ {3 w+ o2 p5 l1 e0 S# `8 a
  9.       C
    / e: C- e  S+ l4 X+ A$ q3 H
  10.     </div>
    + k1 _' t6 N" h( t7 [: b
  11.     <div v-else>1 m- a& b1 ^) m7 u! i5 R
  12.       Not A/B/C
    6 N5 [! b( @  w8 }0 l. I
  13.     </div>
    6 w2 ?% a$ p! O& r1 W$ G) }  s
  14. </div>. T& H9 {" R/ v1 Z8 T
  15.    
    " w7 E7 ~1 A, N) v
  16. <script>$ H# u4 u' d4 a- B. K* U
  17. new Vue({
    3 F, {0 j# B" O
  18.   el: '#app',, W. _4 a* L1 }! A
  19.   data: {
    8 ~, |" ?. s2 J% V2 F' r
  20.     type: 'C'
    3 T  V0 F6 r/ H; J6 D# n/ V; m# z
  21.   }
    1 n$ {+ O1 g2 V. Y- A" [6 ~/ `
  22. })& E9 M% Y; I3 O; U& n9 j2 N/ W# V1 v
  23. </script>
复制代码
8 |3 l% D/ H, P: {) g' E
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令# Z- M0 S$ p' k$ X
  1. <h1 v-show="ok">Hello!</h1>
复制代码

) }& {6 M% K% d, u2 y0 Y+ B  }' @: E' `$ O1 ?7 ^; U# e' j
/ L. d+ s) B1 g( T2 z4 W

/ ^6 H2 `3 ]) [. E# a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 14:42 , Processed in 0.049105 second(s), 19 queries .

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