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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">; U. P6 J! T! f3 }: s4 F7 A+ H
  2.     <p v-if="seen">现在你看到我了</p>
    2 y1 M- W, }% B0 u$ `
  3.     <template v-if="ok">
    + r( \+ w  a- U. {4 X+ Y  |" @* a
  4.       <h1>菜鸟教程</h1>
    4 l6 }; s9 `/ t. Y) H9 K0 `
  5.       <p>学的不仅是技术,更是梦想!</p>
    ' b6 u( c; y$ T5 C' W* e8 D- t4 e0 w1 Z
  6.       <p>哈哈哈,打字辛苦啊!!!</p>% @( A  s+ G7 q/ g
  7.     </template>
    : A+ d; [7 \7 x" Y; t! ?$ `
  8. </div>/ F& N( l% W+ ~% L5 x- L0 q
  9.    
      M2 [3 @0 c( s, ]9 `3 m9 R. z. g
  10. <script>
    ) U! Z/ Z, k9 d# v9 s: Y1 F  N
  11. new Vue({- {. P1 I; k% G% y% q# x
  12.   el: '#app',
    7 @+ {; p1 @& V0 L4 Z2 a# P
  13.   data: {
      e! {! \+ E% W9 n! z8 ]  a
  14.     seen: true,
    9 x4 u& A* Q9 n8 _7 L3 ]
  15.     ok: true: l/ A$ p) S$ {( K9 G
  16.   }% O& S: L& F' W6 F' q
  17. })$ h8 t" N" E, H+ y: b) E% x2 k
  18. </script>
复制代码

+ i) k5 g5 i& g! h1 z
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    ; Y" v8 U% a: P& `4 t6 W' z+ L1 ^
  2. {{#if ok}}
    . j% G! H0 u4 |( n6 P: \9 H& V
  3.   <h1>Yes</h1>9 @& h  i- K7 Y7 s& W5 ~3 z
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
( S3 h2 e% v* i9 X$ t0 }
  1. <div id="app">4 }& I% m. Z' `- @$ ]
  2.     <div v-if="Math.random() > 0.5">+ M; K7 l% Z, F
  3.       Sorry
    1 h/ p& W  P4 W7 t
  4.     </div>$ h2 M  v7 y# H) e8 r8 }
  5.     <div v-else>  G7 n8 H( S( n
  6.       Not sorry) L, M+ |) O  U/ H& h/ b
  7.     </div>
    - d% _! _) o4 }/ a( S# a
  8. </div>
    9 d! U4 Y% f0 `
  9.     8 a$ ~: w+ o/ y4 K$ J
  10. <script>6 u$ o, e. f! D- \5 H* {8 _
  11. new Vue({
    " w" [( [7 v: N7 k3 |
  12.   el: '#app'; c' p* q  E8 M) G
  13. })& i+ }- k  x7 Q/ ~# m7 V
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

. q+ H% w7 i* r( z/ M. }
  1. <div id="app">/ I$ X/ M; s/ X1 a  x# g; e) x
  2.     <div v-if="type === 'A'">+ T8 T3 W1 l$ B& O* J
  3.       A# O3 N* f/ w! u, L( C. w& Z9 d
  4.     </div>, [6 v, u; [% `) ^9 f9 F9 a
  5.     <div v-else-if="type === 'B'">
    : S4 s% ]# n. x# k
  6.       B
    6 ]7 P& R" ?9 h9 `/ z$ l& X3 V
  7.     </div>
    - p+ l8 k2 Z9 |$ _2 j: T- H
  8.     <div v-else-if="type === 'C'">
    8 k8 p  p. a/ N: _! a0 o
  9.       C
    ) m5 @, O3 F6 `" ]! a9 y
  10.     </div>) S9 x0 N. T: g
  11.     <div v-else>/ z4 V  U8 ^8 x
  12.       Not A/B/C+ J0 A( ]  b: E
  13.     </div>
    ( u" @$ b, j2 D" x" M9 @# [0 W
  14. </div>- P( V: O8 |' Q& m
  15.    
    5 s$ P) j5 ]) J# p& m2 q; T: b
  16. <script>4 u3 j7 z6 s/ j) j
  17. new Vue({
    . R; R# z5 g5 ?6 N- R
  18.   el: '#app',: Q5 y5 f# {( O
  19.   data: {( m  Q$ W4 v8 ?3 z) i% q" T
  20.     type: 'C'
    6 X; l4 g/ Y; j; M! S
  21.   }5 a5 d% }8 F. G. w6 p
  22. })2 `2 |9 V5 G/ r: P
  23. </script>
复制代码

) B$ Y/ `6 v0 H, D, S5 C
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令$ v  u9 }2 U* v7 T4 ?
  1. <h1 v-show="ok">Hello!</h1>
复制代码
: M+ e( T* A8 I
: \4 I& l- w# c3 q, N

2 ~4 }8 m% [2 B4 C' X
' S! H4 n5 H  J7 ]( z  ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-19 22:40 , Processed in 0.064091 second(s), 19 queries .

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