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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    5 x: T! Q2 a. V4 s- H
  2.     <p v-if="seen">现在你看到我了</p>6 @6 B9 F! V7 p) ]$ M% l  _
  3.     <template v-if="ok">
    9 A: x" ?6 R  S' k; k
  4.       <h1>菜鸟教程</h1>& }- P- \- s/ K# C, Y2 C$ I
  5.       <p>学的不仅是技术,更是梦想!</p>
    3 x- _  x1 H3 F
  6.       <p>哈哈哈,打字辛苦啊!!!</p>1 T6 A! @$ q9 _( |3 N
  7.     </template>8 c3 e" A$ }( G. u, m
  8. </div>. R. [& s; n: @! y1 D! s- f
  9.     6 o9 A/ I5 J. `8 }6 O
  10. <script># R9 M5 H3 [7 o) f/ y* @" ~
  11. new Vue({
    5 ^+ f3 s  ]; c1 |: t
  12.   el: '#app',
    2 J: F; s/ A- {& a: r- p
  13.   data: {7 }$ m1 ^6 {8 y) h
  14.     seen: true,5 [. I. S. o( s; I* B) {# ~3 I
  15.     ok: true6 ~# n6 l- D6 X% p
  16.   }; m, p1 Z# e9 @2 ]0 u- \, r6 Y
  17. })
    7 E$ ?& g- F2 G5 b; @. ~
  18. </script>
复制代码
( |: P- T; w/ V2 u) R
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->' ?7 }  q+ ?6 e+ o/ G, g/ Y- g
  2. {{#if ok}}
    " n+ I2 i) R! u/ I1 v5 Z7 w9 N
  3.   <h1>Yes</h1>
    . m1 J) I2 o! r4 d1 _7 r
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
2 W' K) ~8 m! U6 U4 w/ B
  1. <div id="app">
    , L- m8 ~9 v; R% i" K
  2.     <div v-if="Math.random() > 0.5">" n  i' |# i! m# W- t1 r" n0 }
  3.       Sorry, p, ~; @9 T0 |, \, H! {
  4.     </div>
    ' I: Z9 ^, Q) M7 G
  5.     <div v-else>
    - M$ L4 t, ^! c; d- e4 l
  6.       Not sorry! C1 }* y5 p  L8 m+ ?
  7.     </div>
    % r1 q* N+ f! }& L# _* T& t# t
  8. </div>8 Y6 s6 e' \! m% v7 t
  9.     / f/ `: r/ y3 K9 z9 L' E) p
  10. <script>% @, V0 V4 ?& w2 W5 `
  11. new Vue({
    . [' ^( m1 l: u& D& c
  12.   el: '#app'* ~5 Y& T2 L+ ?6 B0 x/ ^4 `
  13. })
    + v* I/ c0 m3 z9 F: W8 r
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

/ n5 e* p% |/ O) q/ z4 C1 b* q- G# x- u
  1. <div id="app">6 R  e+ T! }/ \$ p9 Y6 H
  2.     <div v-if="type === 'A'">/ b8 g8 t& y, z
  3.       A
    3 m5 K( `% ~2 r/ s4 _1 C. L# G
  4.     </div>
    + B7 T& |9 j# N. R
  5.     <div v-else-if="type === 'B'">
    5 J: L: {' i% E/ j4 l) L
  6.       B
    7 q: L' ?# F0 B
  7.     </div>
    + \# d8 m3 k/ `2 n! f! J0 T
  8.     <div v-else-if="type === 'C'">
    ! u' G% P- X& X5 U5 Z7 F
  9.       C
    2 M9 ?3 O7 J2 J+ A+ m) D+ L: V
  10.     </div>1 [! ?1 x" d/ L% I( f$ ^, v1 ]
  11.     <div v-else>* ~5 }# V+ S& P' v/ R2 K
  12.       Not A/B/C
    ( f+ i- c2 [1 a8 f- s  P3 H
  13.     </div>
    ! t7 c. L7 R3 ~% }( U+ u0 `' U
  14. </div>4 O$ t, n/ M/ \
  15.    
    9 W) t- L0 m/ \2 V6 L0 J( w! h
  16. <script>
    9 n/ _, f- Z- G; G2 j
  17. new Vue({, [3 L2 C# F3 h  ]) J9 ?
  18.   el: '#app',
    8 @, n: S/ F2 o" F
  19.   data: {" F( w+ W5 H& V( i0 m# x
  20.     type: 'C'
    " l- [! c5 K. w6 [
  21.   }
    ! q- W5 Z) @7 n# W6 w  ^
  22. })4 y2 @2 m' h5 s+ n+ D4 ?
  23. </script>
复制代码
  M* ~' N0 ?9 q* d8 F. q
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
5 W, w! a: e9 I+ h0 l$ L7 M! X
  1. <h1 v-show="ok">Hello!</h1>
复制代码

" O3 T+ b4 W0 H! B1 U7 x
# a6 f/ g. W% L$ O3 D/ [
2 D4 V# v. k. q, c: f5 }9 M+ a3 F) S" U& M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 13:18 , Processed in 0.048895 second(s), 20 queries .

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