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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">. O# x7 m$ g$ o) |$ X( \1 r
  2.     <p v-if="seen">现在你看到我了</p>: M* N% W0 Z3 e: s2 s5 @0 a; ?" `
  3.     <template v-if="ok">
    8 V( @& K5 k+ I& d! d3 a, V
  4.       <h1>菜鸟教程</h1>
    5 q1 S+ |# O# V& r8 W2 n
  5.       <p>学的不仅是技术,更是梦想!</p>
      a5 C9 Z8 \5 V/ v: u% d
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
      t4 j0 q: ?- P4 c1 k5 O
  7.     </template>$ `. a3 X8 _2 a' T9 n9 K
  8. </div>
    3 p9 ?" N' [; V/ A+ Q4 W5 a$ |
  9.    
    2 m8 u0 o6 D# u8 f" s
  10. <script>0 r0 y/ n2 s7 `  K+ U; v+ W1 i; ^
  11. new Vue({
    8 F/ a* t3 s1 @" g# j
  12.   el: '#app',& N/ s- o/ D' m9 J3 j( Z, W6 c
  13.   data: {' y$ V# f0 T( P1 t5 w0 R5 X( G
  14.     seen: true,
    + |: |& Q5 `/ L
  15.     ok: true7 w: [7 k6 n6 ^) }
  16.   }
    & i: W- q6 E: x( t
  17. })
    % z' Q/ g4 \( u# o
  18. </script>
复制代码
# r% s. i% a2 Q- W) i
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->, d# P4 C% E- h
  2. {{#if ok}}# X6 {( ^6 q& |& k
  3.   <h1>Yes</h1>. U3 d' j7 }9 q  B7 h( C; m8 g
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
* |) a: q8 ?( S. j& i; H
  1. <div id="app">' B9 D# a) x; A5 w
  2.     <div v-if="Math.random() > 0.5">* x1 p1 [0 g3 r/ p& `( w1 a4 n' a% m
  3.       Sorry4 L- v" H( g3 y8 l+ h0 N9 I
  4.     </div>8 m- g. h% S0 k7 N
  5.     <div v-else>
    " ], z) q, b& t( h* J; w: y# K
  6.       Not sorry
    8 h3 O. u* Y7 Z  L$ e& o0 z
  7.     </div>: W- Y: r* i! h$ d, D( c
  8. </div>4 ?1 W: e2 Z4 g" I! ]7 C& t% C5 P
  9.     $ w6 Q- s6 `4 M! V) c5 m8 c
  10. <script>
    : p4 C2 m3 R5 z
  11. new Vue({
    % _9 _7 q( `: J" [+ E
  12.   el: '#app'! Z: ^5 @  a4 d; z
  13. })7 q) y) |2 O5 u+ m4 f% U
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
% M! i6 P8 _3 X1 u- ~% w. K
  1. <div id="app">
    6 w* M9 u+ Q7 N/ ]
  2.     <div v-if="type === 'A'"># k. v, h$ q5 r4 V0 n; k. t* y: d+ t
  3.       A
    7 u4 @; C+ q9 R1 x1 r* @1 w
  4.     </div>8 n8 `, z9 L; r3 b
  5.     <div v-else-if="type === 'B'">% L) _; i) C, Y" A- W. O$ B
  6.       B
    9 ?- v% G; Y0 m& R/ y" U
  7.     </div>
    1 j1 ~( C6 D* S9 A8 m, Y8 G
  8.     <div v-else-if="type === 'C'">7 y# ~. A4 j* F8 V
  9.       C  \6 N) V9 f( q- \2 K# T
  10.     </div>9 Z6 [( H3 P% i* D5 C5 s
  11.     <div v-else>
    . J5 \4 ~1 |& G7 O
  12.       Not A/B/C$ J; Z( v& g3 D3 t  D; u
  13.     </div>* B: K/ \  c) ?6 G2 w6 h' g
  14. </div>% ~" p' W! D4 [8 P% E
  15.     ; L8 O3 [! c& l  G5 U
  16. <script>: j, I7 v9 H! x& E$ v. y* k
  17. new Vue({% L& Y1 _7 R8 w  n% y" n2 |' H% z
  18.   el: '#app',* S# P' G3 j+ Y/ ]7 l5 r
  19.   data: {# O3 o; x) Z2 H3 a
  20.     type: 'C'% @& j" ?' f/ U- b( [
  21.   }; p; c- y8 P! P! {) }2 T" D
  22. })6 \3 Z  ~5 B4 a
  23. </script>
复制代码
' Q) |* h" V1 m
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令6 C1 P4 h+ a& P- c" M: ]3 P
  1. <h1 v-show="ok">Hello!</h1>
复制代码

; Q6 @% e3 }. K5 X1 U) \  a- j- n2 H/ E
% b5 N2 P) Q( P

7 s; ?7 y2 A7 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 22:04 , Processed in 0.057917 second(s), 20 queries .

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