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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">) F0 R: j7 d% b+ \- ~/ E; @
  2.     <p v-if="seen">现在你看到我了</p>/ P7 l1 L. D" N7 a" ~2 A1 K
  3.     <template v-if="ok">) i9 n9 B* Y* R* p. l0 k
  4.       <h1>菜鸟教程</h1>
    , Q/ i; S% L, v: s  h; B1 J2 n
  5.       <p>学的不仅是技术,更是梦想!</p>! N' ]: u+ q" ?7 H
  6.       <p>哈哈哈,打字辛苦啊!!!</p># }  q+ Y7 b! g, v. L6 ~- R& B
  7.     </template>( E1 o1 E- N' H; V1 X3 ~* ]* B; j3 b
  8. </div>
    # Z  Z* g* ]2 T
  9.     " F4 r4 y' O2 ~' M9 @8 P$ J
  10. <script>
    ; i2 a$ P3 P; e5 H8 H
  11. new Vue({. n& B+ S% G2 |; I8 P3 x$ x
  12.   el: '#app',/ Q* ~( K$ A/ x+ w* k
  13.   data: {" I8 Q+ E' [) j5 p1 E0 r8 S
  14.     seen: true,5 A. `5 l1 J0 E% Z2 j
  15.     ok: true
    $ E8 E" {" E3 l
  16.   }; _/ k1 o2 ]* I. o8 w8 Q
  17. })* O( n' d' p, H& F+ }; |7 c/ x
  18. </script>
复制代码
* x' U' `: s2 C" B5 J9 p
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->1 i2 O0 E: R9 d# K1 f
  2. {{#if ok}}8 d4 M; W5 w' ?; S, N6 q
  3.   <h1>Yes</h1>% y0 V, }# y% E3 L$ ~1 h5 q  z! r
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

4 N1 [' w$ f7 L. G
  1. <div id="app">6 A6 m$ l% J1 x% ]# J: X. T
  2.     <div v-if="Math.random() > 0.5">
    # X0 a3 ~) _  e$ y
  3.       Sorry
    ) t: J3 E: ^- a6 W4 k% d- r
  4.     </div>1 D; j6 w9 v9 B! s) n$ I0 }! ~7 S
  5.     <div v-else>' a! m6 C- H) e1 t7 W! Q
  6.       Not sorry$ T% H" l% [% }" D
  7.     </div>  s6 ~9 H  p0 J8 F9 e" x
  8. </div>
    : v6 ?6 T5 f4 w5 L+ C3 t, f3 X
  9.    
    / {/ w# }* N, n- f
  10. <script>" b& H4 P' o' C* j4 k5 c% f: N7 V
  11. new Vue({; `* ]/ q* E& d" z8 ]  {$ H5 j
  12.   el: '#app'
    , S" y/ E$ B% I! k: e* C" ?$ _. T
  13. }). D' t6 m% i5 B- ?0 N
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

3 d, t7 g' u# ^
  1. <div id="app">
    9 m3 F& |! Z9 f4 M! |) {& J) q
  2.     <div v-if="type === 'A'">3 a$ A% v3 y" @- W8 r+ f, t" @! J
  3.       A
    % o( g9 _' M2 X1 ]
  4.     </div>
      r$ L9 s9 c4 d& S
  5.     <div v-else-if="type === 'B'">
    6 p; M) e2 E& {& q+ J
  6.       B( a( Y$ t0 C8 X( K9 G
  7.     </div>4 w6 X! r* X7 |
  8.     <div v-else-if="type === 'C'">
    0 X, f8 c! J- Q9 X
  9.       C
    ' g: U4 n: M6 _# t
  10.     </div>, `2 \/ ?/ H! \+ I' S# [
  11.     <div v-else>
    ( w3 v' v$ B2 M( m7 m( x7 b' v
  12.       Not A/B/C$ X2 O% x" @2 L
  13.     </div>
    1 P; R1 ~6 l& b1 G* \8 j& Q0 P
  14. </div>! ?3 N( F" [6 Q$ v) m
  15.    
    - I% G/ g, [& s' k& P
  16. <script>
    6 {! m1 n  W6 k! l" K4 u
  17. new Vue({
    1 D' G* e' M* I5 Q( h" k
  18.   el: '#app',% A0 U9 T- ~! N9 q) ?
  19.   data: {6 C& I1 B/ k$ k  D6 I0 O4 D* q
  20.     type: 'C'
    ! B9 s& ]6 T  s0 s: t
  21.   }% {+ q, r& H6 H  L# j5 L: U
  22. })0 p9 D) r  ]/ e7 V! X& J
  23. </script>
复制代码
( Z2 e5 k" v2 H8 C% w9 v' T( ~
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令  }/ N9 Z, g2 }% ?
  1. <h1 v-show="ok">Hello!</h1>
复制代码

6 F: Z$ {& k7 P. I) O1 a  s
0 x" D0 N: Y* `" q) v% h; t. g' K3 l. N# ?  ~6 R' j

! g1 Y$ D2 s& ]0 j. A- ?6 B2 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-19 22:43 , Processed in 0.048046 second(s), 20 queries .

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