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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    - r8 B: Z* a% z# g) Y
  2.     <p v-if="seen">现在你看到我了</p>
    ) r8 g% k5 B- p0 l1 e+ X
  3.     <template v-if="ok">  Y! F6 K# w' e. C8 ~" d
  4.       <h1>菜鸟教程</h1>8 `* u: x! i2 _2 }' U
  5.       <p>学的不仅是技术,更是梦想!</p>
    - \! ~6 \+ n* V3 a9 b0 M: ~
  6.       <p>哈哈哈,打字辛苦啊!!!</p>3 m* `- G% ?+ l" @5 Z- s
  7.     </template>, d% t( Z0 k3 c# O2 h) K% L: m8 T
  8. </div>" L3 ?" d, t, h- a, h! J4 }
  9.       }" J0 u: }7 }' F% u
  10. <script>
    - n& [5 V* v# i1 d
  11. new Vue({* W* E8 l9 Q) L1 H6 H) a9 t
  12.   el: '#app',
    7 \: _6 |7 A4 B0 X) M
  13.   data: {
    - X1 V/ N( A6 |# H
  14.     seen: true,
    - C+ Q2 E5 z2 x, m: C$ s+ k
  15.     ok: true* |! Q7 {' y( {+ o* Q
  16.   }
    ! K5 k0 C1 y# {5 `5 G
  17. })5 c- o( s" z+ V) a
  18. </script>
复制代码

$ E- w( h7 S* Q
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->6 C0 p3 @" f/ R. d
  2. {{#if ok}}
    4 p. z, f; I3 V
  3.   <h1>Yes</h1>: b& l) B1 W7 I. P2 {. a9 c
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

0 h- B. V/ s; X) y; ^
  1. <div id="app">
    - [) _+ y# ?+ L+ o0 B; m
  2.     <div v-if="Math.random() > 0.5">6 ]& r. |3 W& [1 P& y
  3.       Sorry- ~8 m$ E  J8 P7 l; o8 m, [
  4.     </div>1 ?8 |% _' l" m$ j
  5.     <div v-else># c0 @! @3 \/ y( b
  6.       Not sorry
    2 P( X, ]( D& y. i% q, N5 G
  7.     </div>& N4 c, t: G! U+ T
  8. </div>) y. m" E- H  a
  9.     5 N6 ^4 h$ n: ~, W- |2 h4 P
  10. <script>; Q4 U# m  |  P5 h
  11. new Vue({7 l& H8 y9 K% y! n
  12.   el: '#app'
    + H0 h/ J% b+ A% ^* J0 d
  13. })2 J" L1 ?8 `- N( I5 j
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
6 Y7 E5 v7 I% q: m4 {8 v. b
  1. <div id="app">. E2 I8 Q/ q" C
  2.     <div v-if="type === 'A'">, ]4 J! k9 a7 i$ l3 t1 n; ]9 A' ]
  3.       A
    & O  R( k& b6 @. o
  4.     </div>
    ! h1 x0 [3 x: J. Z) F) h0 F
  5.     <div v-else-if="type === 'B'">, e( n; V% j7 [4 i3 O) }
  6.       B$ c  @- q6 E! x& L( I
  7.     </div>
    $ k% m) v; O4 ]* @# F
  8.     <div v-else-if="type === 'C'">
    % w7 |& [! P7 `9 h
  9.       C
    / {. J) _3 v; b, a1 Z5 F8 R$ X
  10.     </div>5 v! c4 l, Y' e4 q3 W: j" h. F. u% B$ J
  11.     <div v-else>& I' S, b( O, B; t
  12.       Not A/B/C
    + x8 y6 {8 R+ q/ K6 n1 k
  13.     </div>! W* y% H% A7 u5 W, N3 ?7 \: x0 m
  14. </div>5 c! z% {% Y- k6 U
  15.     " x  V. h( n5 U: x
  16. <script>, F5 z- n2 X' a5 Y. T
  17. new Vue({: _6 s0 w! f8 g5 }& R5 a, y
  18.   el: '#app',
    8 E+ X2 w& r: S( H
  19.   data: {7 F* M1 b6 [; v1 D# v
  20.     type: 'C'
    + h1 {2 X$ w, D& w; e7 n, L
  21.   }
    * m, c7 v2 o0 B& ?
  22. })4 X. n. v; ^0 y; `- o; }0 t' H
  23. </script>
复制代码

9 _% f) H( u9 M1 n& s
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令  y; D4 o0 y: Q0 w. g* z# d
  1. <h1 v-show="ok">Hello!</h1>
复制代码
% ?' R# J0 h( r; n/ j: V, z

; g! o' T$ Z6 j$ x8 U1 `- A
, ~; R7 m: Z! U1 f( J. ~1 b3 I5 K$ |: [) B" G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 14:28 , Processed in 0.057302 second(s), 20 queries .

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