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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    2 X* D0 d1 U5 _$ B$ `" N
  2.     <p v-if="seen">现在你看到我了</p>) w; Z# |9 w, |* p3 I9 G: q) v2 ]
  3.     <template v-if="ok">
    $ G" Y3 X8 X$ J! J% o& l4 t5 h" V+ J
  4.       <h1>菜鸟教程</h1>
    6 ?' q3 o# c/ q7 u6 a* x5 U
  5.       <p>学的不仅是技术,更是梦想!</p>
    # ~, _. a: J' O. Y7 e( E8 D4 x7 d/ ~
  6.       <p>哈哈哈,打字辛苦啊!!!</p>6 W) R5 `" Q4 B0 F# \* S/ A0 f' B
  7.     </template>  N% o* Q. w) F' p$ M3 [0 z
  8. </div>: x3 z) ?' R: G8 X- [0 {& |1 Z
  9.     # J3 k1 ?' Z  S$ P5 \
  10. <script>$ b) ~2 k4 q7 ^
  11. new Vue({
    5 N, c5 _. k, s* H
  12.   el: '#app',
    / K( w+ O) x$ B5 K2 G$ {/ F  R
  13.   data: {8 T0 p0 Q; u5 b" F+ I' ~
  14.     seen: true,
      |) X4 V* z, c$ H( Q1 a
  15.     ok: true1 A, G' m: U* d! _  `+ A' Y
  16.   }! d$ k9 H/ [2 V8 x4 B4 v9 z9 p5 v1 q
  17. })
    6 I" {+ @# g- y
  18. </script>
复制代码
1 R& q7 p. K6 A! v( q
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
      f/ E1 B  d) S) ~. n
  2. {{#if ok}}
    , H$ }, B0 P. i; A! g' p
  3.   <h1>Yes</h1>) l: A1 s) h1 P$ ^* Q) g4 ~* h1 _9 G8 f6 A
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

* i; C, b+ `  Z' w+ {( T" |
  1. <div id="app">+ k  f9 E2 N+ ^- N8 a
  2.     <div v-if="Math.random() > 0.5">0 E( A( I8 k  s4 w3 [
  3.       Sorry
    ) O' w, P0 k0 U, W
  4.     </div>
    ; ~0 P: D) V$ |% C3 y
  5.     <div v-else>
    1 L# B7 ~% q8 S  j" q1 n
  6.       Not sorry
    : G+ Y7 c- {) x, y9 W
  7.     </div>
    ) e7 W% o7 O1 R3 ~4 Z
  8. </div>4 j7 K0 z) e# W6 P* v8 D- h# @& j/ Y
  9.     9 q3 \% v$ U2 Z5 j
  10. <script>
    8 G: |2 {+ v8 O: @  V* q
  11. new Vue({
    5 q) J; w* J3 [4 I2 s6 G
  12.   el: '#app'
    ( Z) X) H& |! c
  13. })
    # P' m0 A4 Q2 x6 F5 S
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

$ F+ M8 v5 C) C! ]. S4 I8 i* f6 v7 |
  1. <div id="app">
    + H0 N8 D5 k0 t3 \2 p! J" y
  2.     <div v-if="type === 'A'">
    # l% {) b; h5 j4 I
  3.       A: H4 w2 a5 _9 Y: M4 A
  4.     </div>
    ! v# ^% g3 Q1 a2 ?
  5.     <div v-else-if="type === 'B'">
    7 C! p' t( h* P# R& L  G9 K3 k- ?/ A8 Q
  6.       B* z- t, r6 a8 i9 g4 ]
  7.     </div>
    7 B! ~2 X- t2 b& J) r: w
  8.     <div v-else-if="type === 'C'">
    " B: R* A+ \+ j8 R% H
  9.       C
    ' }; ?7 e- E- O6 o  o4 {* F
  10.     </div>
    3 I- l4 e- ]* w  Q& ^. H
  11.     <div v-else>
    / \! O0 U2 U! X# f
  12.       Not A/B/C
    9 W& }; L  |, c& l: A4 M( F
  13.     </div>; s& c0 _3 s& [* i* v5 }; J
  14. </div>
    8 c: v" f- F" S' j* c
  15.     " m" D. D9 w; O0 |! a
  16. <script>- o; [: w7 a3 P- {$ {
  17. new Vue({
    6 `- L* M# x$ |! f
  18.   el: '#app',. U2 A  A; s% `& A2 N0 c
  19.   data: {
    & \" g* l0 V( v( C% Y' x! o
  20.     type: 'C'  H# l4 I- K; F/ _  A1 p
  21.   }( U1 I7 Y% r/ _; R
  22. })
    5 \2 T# r8 c' h5 g
  23. </script>
复制代码
' C& w' n/ l; P- ?4 }8 w( b
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
, o- O! T. W! ~' h; a: c* W* {
  1. <h1 v-show="ok">Hello!</h1>
复制代码

% w+ s; g. K6 {' J- Y
# L0 R* T, P$ V' V8 N! |7 w4 R% X
! y9 c& l8 w# _' e  r+ P! m! Y) a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 05:18 , Processed in 0.049359 second(s), 20 queries .

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