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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    + ?  K. h+ g0 M2 ^  s) {3 g6 v
  2.     <p v-if="seen">现在你看到我了</p>$ z# F  c& L' P0 L& f/ ]& p! t
  3.     <template v-if="ok">, L: N" @' I' G
  4.       <h1>菜鸟教程</h1>
    / x+ N' J& g, f
  5.       <p>学的不仅是技术,更是梦想!</p>
    1 E. v$ l- s" B/ v/ R+ E4 f; Q: {
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ' m1 C+ M$ M6 W/ b4 W# n
  7.     </template>6 E9 n$ T3 N: T. }" c3 {2 s) A
  8. </div>2 |- f; s* I+ o
  9.       g1 C. K  k8 ^8 o) S
  10. <script>: H9 F5 l; u; H% }- e
  11. new Vue({  ^1 ^8 Q5 q+ \9 h
  12.   el: '#app',4 z9 V+ S  k3 h2 @
  13.   data: {6 w6 q; R* A' e
  14.     seen: true,
    6 d! J/ i8 b8 B7 V6 b; `' v1 G
  15.     ok: true
    7 F' N5 q% b9 O' V1 P3 B7 x
  16.   }/ f' N& Y: G, T
  17. })
    + k" P9 n% K6 o( k
  18. </script>
复制代码

. m9 g7 N# w  m
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->) s- P$ V1 w( T
  2. {{#if ok}}
    ' m& A9 i( _: V  Q' V2 e4 A. k/ E
  3.   <h1>Yes</h1>
    - `9 |! y# ]# K& R( U
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

3 P7 m9 ?0 ~& |9 h# B' u; l
  1. <div id="app">
    # Q8 J: {& k, C) l$ w
  2.     <div v-if="Math.random() > 0.5">
    $ K7 [; V. z5 ]' T2 p2 e
  3.       Sorry1 _" u0 V6 ]8 d  x/ Z
  4.     </div>, K. y8 N7 G, M" y9 O- V
  5.     <div v-else>4 Q, [  n0 ?" p6 c- O0 E" l
  6.       Not sorry
    6 L0 F8 |' v. f/ L6 }
  7.     </div>) Q; o; Z4 n0 i( u) u
  8. </div>: v! ]& [% q- x' q* u! ^* @% S6 ?0 _- n
  9.     8 w0 ?9 c& S2 G& `
  10. <script>5 F2 N  c' G  D# T
  11. new Vue({( a+ ~) Y- P' r! ]- t1 t
  12.   el: '#app'
    % N; o- p+ h$ G: `8 E7 L
  13. })& l1 K2 T) |( j5 c+ y! s0 u8 D
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

& _" v) U) l! j; {
  1. <div id="app">: p; _, m9 k( `. r5 p
  2.     <div v-if="type === 'A'">" g5 ]" i1 Q7 `; k4 z- L4 }
  3.       A
    7 Y3 U, {$ X2 o) f9 `
  4.     </div>- F) s4 D# |. s% `; ]4 H  Q2 ?
  5.     <div v-else-if="type === 'B'">
    6 p$ z4 F1 x$ H2 R' l
  6.       B/ J. q2 X' o! p( v3 |
  7.     </div>0 w* I9 e2 g8 c3 F& j& F+ H; C8 a) S+ @
  8.     <div v-else-if="type === 'C'">
    * {) B; T$ R, P; b, x- U1 Z$ A
  9.       C
    . H, f/ y5 X4 w( M5 O2 A  C# X
  10.     </div>
    6 Z  K+ V" p& o
  11.     <div v-else>3 ~/ ?5 {4 v$ u- P% I
  12.       Not A/B/C
    9 H$ ^/ ?! c& Z! \3 f8 l1 a
  13.     </div>
    / d9 e, U& k8 Y) d9 r& M1 t
  14. </div>; N8 b: O+ D0 r' A$ {' s
  15.    
    9 k7 X+ `- K8 {2 {; ]
  16. <script>
    + r( v. R3 C) o# J1 H. X. Z
  17. new Vue({
    9 U7 Y6 W- y4 ~2 t4 A* T
  18.   el: '#app',  F7 B# L4 a2 j/ W% k
  19.   data: {  {+ D, r  y3 `
  20.     type: 'C'* X4 c( ~6 \4 n/ n; ?
  21.   }9 S# u9 n5 a& h7 i8 u
  22. })! d2 m4 t6 S, X0 p  D- a% O
  23. </script>
复制代码

; d$ k& p  i0 \. f; L( F% f/ d
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令7 Q" {$ x5 x1 s% k0 x: f/ L# W" G5 r
  1. <h1 v-show="ok">Hello!</h1>
复制代码
8 l* s  J3 s( [( `' ~
. J: i! D, V5 A9 K1 z

4 f$ p& E9 |5 ~7 @9 e+ ~; Z0 Q$ w% g# ~) T0 N9 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 13:36 , Processed in 0.052675 second(s), 20 queries .

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