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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11331|回复: 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/ Z- r  \4 e* q5 R) ?$ ]
  2.     <p v-if="seen">现在你看到我了</p>
    / a9 m) `) Q3 Q2 T% `
  3.     <template v-if="ok">
    & b0 V7 O6 Y" v# i+ U3 a: R
  4.       <h1>菜鸟教程</h1>* w+ ~9 M# z; y, I" C
  5.       <p>学的不仅是技术,更是梦想!</p>: D2 R5 J8 [/ Y% u% M3 K+ b. P0 m* X
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    5 @; O$ {/ Z% F: W) \7 ]( U
  7.     </template>
    & s4 C1 d" ^' T2 A) J" F8 }: _
  8. </div>1 C6 @- k2 Q+ b9 G" ]
  9.    
    # X* P! H2 |2 J
  10. <script>. K& x: V" V1 p5 C% ^
  11. new Vue({
    ( `( N; ?3 y+ o2 E  q  }6 G2 i- j
  12.   el: '#app',9 H: ~1 }7 J- _" Z- |+ A: Z5 u2 g
  13.   data: {
    1 D! Q+ H- C+ H7 t9 x
  14.     seen: true,
    * {5 m9 C6 k$ x$ I7 H3 S. p
  15.     ok: true/ |# Z$ ?5 a6 f; B1 E5 q7 @( Y
  16.   }8 U: q3 m4 O9 U
  17. })
    , r* C) u3 E* F
  18. </script>
复制代码
3 w5 N: l* R5 b
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    & b7 x; T  o( [# v  S; R' m6 ]
  2. {{#if ok}}9 S( d" c6 T2 K( S+ B0 k8 d
  3.   <h1>Yes</h1>
    8 M& J9 v# W: z$ F) U0 ^
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
. e0 J/ m& Y( _1 d
  1. <div id="app">: ]7 A! S/ _4 K  G
  2.     <div v-if="Math.random() > 0.5">/ a2 D7 o" D/ R' t. k% r: S
  3.       Sorry* A8 ]' t" y( @
  4.     </div>
    " O1 \' O$ S1 E  H- v# Q9 l
  5.     <div v-else>
    ) r+ H! y' f2 S2 u" H' V" S/ H; l
  6.       Not sorry4 X; @) b4 {0 Z0 j
  7.     </div>  A' p+ J( X* \, V8 M2 H6 U
  8. </div>
    1 z) b# a' w( Y" U* H
  9.     3 R# o3 G9 \& O, |7 ]& p0 Z
  10. <script>
    : d& u# h) b' R" W2 t7 O
  11. new Vue({
    ; m- H8 }5 x7 u4 L3 @' d
  12.   el: '#app'# n) j" ~/ s0 p) q, \; w% T4 w5 Z
  13. }); U+ b( k- z/ n
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
9 N5 w+ I4 ^, @/ x8 [
  1. <div id="app">- s  `+ w5 L% H2 Y& \
  2.     <div v-if="type === 'A'">
    8 W$ t; O6 c5 R* l4 Q* c: A
  3.       A
    5 Z  j9 a) D! U! J
  4.     </div>- t4 F. A7 l2 s4 H
  5.     <div v-else-if="type === 'B'">1 A' |* p( e, ^- F, V( n6 @
  6.       B
    7 L. H+ p% j. D" k
  7.     </div>/ {3 s8 A: {' V& z
  8.     <div v-else-if="type === 'C'">! W" `/ a& _3 N: ^
  9.       C) }3 N4 a7 E( V, B) X7 S7 w2 `
  10.     </div>
    ! O# [0 S! p% N4 h2 b
  11.     <div v-else>
    6 M- w7 ]1 X/ E; b3 A
  12.       Not A/B/C
    1 @: z- y% k2 j# B9 ]8 k. d
  13.     </div>
    : i, i0 @, |" T( ~3 Z5 n. t% ]; Y
  14. </div>
    4 y$ [/ B5 i/ I! [4 o& R
  15.     / J- y1 `% {9 \
  16. <script># u, T- R4 e- V, K: S4 o( F+ ~2 k
  17. new Vue({
    2 N6 U8 V: _" z
  18.   el: '#app',
    * E) R" h; C$ T7 I1 a7 H1 d
  19.   data: {
    & ~* @/ [7 S% q1 D" I
  20.     type: 'C'
    8 s$ F) S. T: y4 x! C4 q/ u. v. D. C
  21.   }6 I* D/ w& N) _, D; J3 M
  22. })  }* A1 v4 l2 [: I: C5 f
  23. </script>
复制代码

8 r5 }1 I5 e! g# c" m
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
" E0 C6 f4 U5 K6 L4 T1 E5 V. K( `
  1. <h1 v-show="ok">Hello!</h1>
复制代码

3 m; y* x3 C- E( a7 \# i8 B- q6 v. ?8 W9 D

* m' e% i4 E2 B8 H) ^& ]
9 c; F8 i  H8 ?0 \5 W  ~- f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 21:19 , Processed in 0.121761 second(s), 19 queries .

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