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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">, T  h3 y* ?, F; T# F) {6 ^: s
  2.     <p v-if="seen">现在你看到我了</p>; M# L' ^( X/ k  e* I. d- K3 U6 ?
  3.     <template v-if="ok">* m/ ?* e" U7 o0 ^/ r
  4.       <h1>菜鸟教程</h1>
    . m; k* b9 f3 C6 u2 Q2 p  y
  5.       <p>学的不仅是技术,更是梦想!</p>
    # A$ f$ ~* U( t" |7 R$ H7 j
  6.       <p>哈哈哈,打字辛苦啊!!!</p>! ]( o0 M. V+ T0 C, s! L% C
  7.     </template>, z( a0 @- n  x0 H
  8. </div>
    / W8 s3 Y3 h  Q5 F9 b
  9.     * B6 X  X( c  }) ^9 q$ f+ k
  10. <script>
    4 i* K4 T) l6 m- K0 g% y
  11. new Vue({
    ; s+ d  c5 R) x9 i9 j9 ?& D
  12.   el: '#app',
    9 v5 N' [+ w# D, |
  13.   data: {1 @% x, Y8 Y: t# {2 U& f
  14.     seen: true,) j% h' f& F7 e; I- Y: H6 H6 S
  15.     ok: true# K1 w6 Z/ U; b9 t; b% s9 l+ D
  16.   }% N- U# L6 A, }7 c, K
  17. })
    6 C' v1 `4 M: V" {- H
  18. </script>
复制代码

7 D1 J& c* i8 {0 H. u
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    9 a! r, P! t1 I  _( t1 z! {
  2. {{#if ok}}
    ! y0 W3 g4 i# F4 q+ o
  3.   <h1>Yes</h1>% }; N, A+ S) Y9 ?
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

. }5 a+ ?4 O$ s8 B+ Z% R7 `! l
  1. <div id="app">
    # ]4 J6 j6 m: k. K2 C: U; {
  2.     <div v-if="Math.random() > 0.5">1 G5 `4 ?) o' Z2 g% R9 {
  3.       Sorry2 P% C5 N/ _1 B' k& Q. o" G
  4.     </div># H* K9 f5 ]( U6 R1 d/ K( I! L% B
  5.     <div v-else>' e1 k0 q9 j7 C- \6 J8 u
  6.       Not sorry5 g8 S' y) M; ?1 u8 s" L4 q) J" g
  7.     </div>4 q: W( l6 Y* x+ t1 ~% ?) k
  8. </div>3 F& o$ U( |! A& K. U
  9.     % \! U. @% E1 h% N+ s) i
  10. <script>- D3 Q5 H& {" |: o* D' M
  11. new Vue({
    1 E/ Y$ X7 X3 R$ f* N# ]8 `
  12.   el: '#app'
    % ^& E  s2 J1 s. D$ w: h
  13. })
    ; a) q# ]( ]# {. Q" S, E  y
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
, W8 R+ Z+ ^( t0 U
  1. <div id="app">) ?1 F/ U5 l' ^6 O
  2.     <div v-if="type === 'A'">* D! j" i$ y3 x+ g5 ~& [
  3.       A$ X/ e$ T) s% v
  4.     </div>
      A0 p$ R. q1 E  v  x
  5.     <div v-else-if="type === 'B'">
    8 X9 W* F1 e2 D! f$ Y2 s. t
  6.       B
    5 [5 E% U9 ^  t0 }
  7.     </div>+ k$ m0 i7 m0 E) \' y5 g* j
  8.     <div v-else-if="type === 'C'">
    , k9 U4 m; L; u& Y' A2 r
  9.       C
    ' e  b) P( A" f3 W! w5 P; S
  10.     </div>+ S' ~. K7 [! Q7 |& x
  11.     <div v-else>
    2 _& m, J; R' Z! ]  S4 J
  12.       Not A/B/C9 i6 [1 ~- i  e/ p) v& L
  13.     </div>' z# I4 e0 B0 D; F; J6 b4 u
  14. </div>
    5 i: _3 h) }4 v! D0 B4 b+ a, H
  15.    
    ! k/ d6 }3 o4 f4 I7 J8 x
  16. <script>
    , ?+ G0 W' `6 t+ p" Y* _7 Q
  17. new Vue({
    + x- X+ C# Q/ y' _4 t
  18.   el: '#app',6 \( q* b( B% H
  19.   data: {
    1 w  O! a3 X0 k7 Q% U$ z5 G2 c6 l8 `
  20.     type: 'C'$ Y' o! S# Q' u) m
  21.   }/ V0 \/ ]7 N! }% o1 e
  22. })3 {; F0 }6 ~0 N% o% t- M
  23. </script>
复制代码

, q+ R0 ^& e/ L- Y% s1 }8 C
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令; ~6 o) ]4 D" d0 {* t2 }% g
  1. <h1 v-show="ok">Hello!</h1>
复制代码

8 g" o! R3 X% W( G( V+ A+ U0 _( Y) I  B8 L8 L1 X( q

: m' Y8 a3 ]# G2 e' W
3 J# A/ E  E; x7 c2 [, O1 |; h4 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 15:05 , Processed in 0.069476 second(s), 19 queries .

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