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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    : f, N/ m. q7 ~# v
  2.     <p v-if="seen">现在你看到我了</p>0 O% v, W1 W5 o6 v$ i7 [
  3.     <template v-if="ok">; w) z# I7 m+ U
  4.       <h1>菜鸟教程</h1>
    * M/ M- W& v7 T5 a
  5.       <p>学的不仅是技术,更是梦想!</p>. ~0 z4 ^; D, D  s9 t3 b! j4 w0 ~$ f4 k
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    0 m' t# x# @" r" S# W# s0 k3 y
  7.     </template>
    ' P8 ]2 E* k; p+ ?
  8. </div>/ V; d# E3 k; q3 h  P
  9.     4 X% H) b( {  o0 L
  10. <script>
    ! O. c3 N1 o5 k
  11. new Vue({
    & Q# j7 u0 }% K" \
  12.   el: '#app',- \" @( a& }5 X& q1 u
  13.   data: {6 |2 u5 m6 T/ k1 M" A- v# u
  14.     seen: true,# r: }5 C! O2 C- K4 S; I
  15.     ok: true
    0 g/ Q/ u; d8 e% \' q0 Y' w
  16.   }) d; H3 @* X3 h7 B" n" L* I& V  x, D' J
  17. }): Y' q  p1 H, X8 B; k& V& i
  18. </script>
复制代码

( `& o. l0 ^7 x4 o; Y- o2 U0 |: F9 r
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->- K, E. x3 j7 M, ]! K9 L
  2. {{#if ok}}# d! t4 {! U) @
  3.   <h1>Yes</h1>" j; Z  c( ^' f0 B7 J' i% r
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
" p% K+ h; K$ {& b- N) R3 d6 x
  1. <div id="app">7 B- O) p# o) v" P3 B; a
  2.     <div v-if="Math.random() > 0.5">
    0 m, b% G! l- p0 G/ a/ j
  3.       Sorry0 u5 i  `5 g$ l7 M. L1 ?* f- v
  4.     </div>+ g( p/ s  ?6 m6 v
  5.     <div v-else>; v7 N/ Q; d7 X) t
  6.       Not sorry
    & u) w# j4 `/ Z. l8 @( C, I/ A
  7.     </div>5 ]9 x) Z% w1 b. y' M9 s0 J- L& |
  8. </div>4 U0 S' H) |& e, Q) q8 @
  9.     ! E/ L; E2 w# C1 K, l
  10. <script>4 c7 U1 g4 R" ]* d
  11. new Vue({  e: C+ l( V+ _' d! a. C' s# I
  12.   el: '#app'
    ! o* E; l. [2 j5 L+ z) v; R
  13. })2 w% u7 t+ {, R
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
. |' t9 M! \8 L( r4 q: p
  1. <div id="app">
    ) s1 `) r. N2 ~! e$ ]
  2.     <div v-if="type === 'A'">
      j2 G% y1 g0 l# E1 T6 K" J
  3.       A7 T) V- u$ r; C4 Y& Z
  4.     </div>
    3 X2 U) w$ ^/ u% j+ S- w
  5.     <div v-else-if="type === 'B'">4 E  v2 B* H+ s  _9 M8 D# x
  6.       B: ]+ t# f  t) C- U5 N1 w7 e4 w+ J
  7.     </div>
    / _- l0 S' \& y
  8.     <div v-else-if="type === 'C'">9 \- U8 @9 \' a- }
  9.       C( p8 }; I0 O) A* ^
  10.     </div>) i+ |" N/ h6 r  ]
  11.     <div v-else>/ ?' _4 {8 n% A* d& X. J
  12.       Not A/B/C
    8 q* @% `8 z: A+ ~; r4 G
  13.     </div>
    2 K5 u) S- @5 K3 `2 I1 H+ f& [
  14. </div>$ a6 H3 Y! [: j) [8 b7 Z* C& U2 D
  15.    
    . K' c) y: [1 B, h7 a. c% X
  16. <script>
    . J/ p1 n, m5 F1 V. x) ~, T
  17. new Vue({9 Q- t1 N/ [# e/ Z7 d
  18.   el: '#app',7 [* a! n1 @: E7 _& g3 L* Q
  19.   data: {3 `2 A4 ^* d# `! S; w
  20.     type: 'C'- o8 R' w. r$ @; O; U
  21.   }: v& e# r+ P0 W/ G0 i0 _
  22. })
    0 K5 Y6 Y$ b% e) n1 c, _* w% ^! q
  23. </script>
复制代码

' F" [% q# K0 F$ u2 X! K
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令# g3 w; F  g& s. W1 e
  1. <h1 v-show="ok">Hello!</h1>
复制代码
4 F0 n" J1 v, f0 @- A& }* X8 S# R

$ d. f; `! \: ^1 T& t0 D0 Y
* i1 ]) V" Q" \% g* P8 A
: S+ I7 {( e% S4 u5 F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 12:39 , Processed in 0.052999 second(s), 19 queries .

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