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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    : q- k9 g* g- T; h
  2.     <p v-if="seen">现在你看到我了</p>* ^6 l  v( p8 t
  3.     <template v-if="ok">
    ) T3 ?8 n0 K  M: A, k* n5 I0 A  b
  4.       <h1>菜鸟教程</h1>2 u5 D5 q  K2 W
  5.       <p>学的不仅是技术,更是梦想!</p>  w1 Q% Y- T( {2 ]  Q8 ^
  6.       <p>哈哈哈,打字辛苦啊!!!</p>0 g6 V7 l- n% ^2 w
  7.     </template>' F, D/ W! d4 e. Q4 C
  8. </div>/ @/ S5 Q$ [) l: U
  9.     : w2 n' K% I1 B$ F7 C% Q2 B' j
  10. <script>
    7 ?8 P5 K0 X8 \$ h$ v
  11. new Vue({5 \3 D& Q* v  q/ T0 L8 D7 o
  12.   el: '#app',
    6 D6 C6 y" H( u; \% {. [
  13.   data: {2 o7 n8 u5 A5 z: R; W
  14.     seen: true,+ q* p" u7 ]) _# f
  15.     ok: true
    , b1 B5 r, {! d6 G: I2 p* Y# ~$ q# F
  16.   }- w" u8 }7 ~  f; b' s& _1 U5 _
  17. })
    . T. g# V* ?$ @: Q% e. U* P
  18. </script>
复制代码

* X: i/ m4 C1 H3 x9 v
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->% M; x5 E! t3 f9 t9 M+ k- h7 C
  2. {{#if ok}}
    , }$ T" \* w0 v& n; \' f. `
  3.   <h1>Yes</h1>
    2 c% b& Z3 s8 W! G0 @- e, r  s
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
; p+ k0 u* q2 Z) b# e% Q: g
  1. <div id="app">
    3 M8 O1 F; M( f, b
  2.     <div v-if="Math.random() > 0.5">
    , |# u& I, s4 `8 ?0 m: X+ |
  3.       Sorry
    2 q1 s; I0 e% t, I0 y1 \- \  l3 f
  4.     </div>
    3 n5 {7 V6 K) `/ C
  5.     <div v-else>1 `- M. o+ l4 {' d8 M
  6.       Not sorry% B3 ^* U7 e/ g& c) w! E
  7.     </div>
    $ k( W4 D7 A: X% j0 Q2 v
  8. </div>* j. b" v5 V2 `
  9.     ; J) N9 C' b7 d; k7 c* J
  10. <script>, |) m0 e; j0 Q+ r
  11. new Vue({
    , j* [3 H1 C& i0 H# `1 \& ?
  12.   el: '#app') x6 U) z" ~7 y* i  _  @% v2 `% l9 n
  13. })
    2 t) c1 A. W0 Y5 n8 `/ r
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
; A2 J2 a- L) v  T
  1. <div id="app">% f4 D6 H  s( ?
  2.     <div v-if="type === 'A'">( n, i: r+ S" j0 R3 Z7 R
  3.       A% G! b6 t9 {( M6 s: l
  4.     </div>, e  K& k8 L! t2 G. ~
  5.     <div v-else-if="type === 'B'">
    6 V; l+ d5 _- Q' U
  6.       B
    * @& t6 C, j6 g' B6 o
  7.     </div>
    + I( K% s: [/ j, r3 i* c
  8.     <div v-else-if="type === 'C'">& p6 p" c+ E: d; a
  9.       C
    # T/ s% p/ c- P# B; `
  10.     </div>- x" e* g+ K$ T+ B& \+ a
  11.     <div v-else>
    + O  e/ `+ @( C' O, _
  12.       Not A/B/C  F* A7 U; ^9 s! G# Z; C2 g
  13.     </div>1 B! p7 A; W! t& a! a1 f5 ?
  14. </div>
    / O5 C) _7 v& f6 Q% _
  15.    
    9 |2 w) d6 N7 `7 u
  16. <script>
    # N9 d& [9 }& M, v
  17. new Vue({
    & _/ P. G+ z! _4 l  B% w9 s  x
  18.   el: '#app',6 f3 i% I. x, {( {5 x
  19.   data: {
    * y, `* E" ^1 `0 q4 z
  20.     type: 'C'7 ~9 C* J6 T* J" v8 w! f0 L
  21.   }: N7 `7 l. ~8 G- C5 G
  22. })( U+ s! W3 J" d- u8 R% ~
  23. </script>
复制代码

8 k+ x- T# w4 b% j
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令0 q: F8 i$ L1 ?/ ^! @
  1. <h1 v-show="ok">Hello!</h1>
复制代码
' \5 |- L3 V0 |7 V

; c+ I* v) x6 f) h- f
( I, C0 E; T4 u- l) k& }. Q
& y' `. t& |  z! o: {& Q) q( [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 02:53 , Processed in 0.054962 second(s), 19 queries .

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