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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    & Q( `$ [) r+ ?2 J2 ~( s
  2.     <p v-if="seen">现在你看到我了</p>& B# |& L9 D& C0 h0 o  b0 L7 f8 ]5 A
  3.     <template v-if="ok">
    0 ^& t7 V5 ]* k  j
  4.       <h1>菜鸟教程</h1>
    4 y" \3 o3 `, L- J0 ^8 a3 X
  5.       <p>学的不仅是技术,更是梦想!</p>; O. }- l! J$ D+ m* P$ W' F
  6.       <p>哈哈哈,打字辛苦啊!!!</p>. O% {9 e; O6 B: a/ [
  7.     </template>0 Q( ^. A' B1 s- N$ Y
  8. </div>
    4 T& f* @; h, c# M$ {
  9.     : y* G7 Z8 k) r0 J# r" \$ j
  10. <script>% Q+ ^8 y" W1 _; {# F! a
  11. new Vue({
    7 x5 N- }/ |2 n: L
  12.   el: '#app',! A* q! d6 c$ _- _8 ]
  13.   data: {
    0 P1 d( T6 i: ]% L$ @5 S
  14.     seen: true,
    4 g5 a, e, v) h/ i8 e/ K+ H8 W
  15.     ok: true1 Z: p- p7 _. }4 w# n
  16.   }
    1 [: ]1 D9 H$ j6 f0 ^. t- |( }
  17. })1 H7 C3 o: o+ t5 B/ q- K' w( h, A
  18. </script>
复制代码
/ X. F/ b3 p' h" x
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    8 U8 M9 c; t- P: t
  2. {{#if ok}}
    & E8 {" X1 c8 Y0 h0 ]
  3.   <h1>Yes</h1>
    & |# _0 p, I. j- W4 t: t1 p
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
0 `. T& Z/ h! K1 y
  1. <div id="app">. |& E' _/ E* V/ J# H
  2.     <div v-if="Math.random() > 0.5">
    3 L' s7 I, t$ ^" X
  3.       Sorry# ?' v& F8 I4 Y% T
  4.     </div>
    " ?# ~. p# ^5 n( t8 Z2 ?0 d3 z
  5.     <div v-else>
    - J. ~" p9 ^( \$ j8 R" P. F
  6.       Not sorry
    , E8 E& L# c- Q% Q8 `, ~
  7.     </div>
    6 I9 V: o- }# B% U4 ~5 w. i
  8. </div>
    + ?2 ?6 u6 d# |( M8 ]0 B
  9.    
    5 K& B& t. M3 D+ ?
  10. <script>4 N; x% i$ H: ~  X' z3 ~- Y  l* R
  11. new Vue({. c- K$ m* w. P2 g9 n
  12.   el: '#app'/ T7 F) K# w( f+ k; ]8 Y) j
  13. })" p: S- O: ]4 b, c# Y! Y
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

/ Q( b" a- m, `1 n
  1. <div id="app">! k6 f4 F! L5 N
  2.     <div v-if="type === 'A'">
    , J: w. W+ Q+ d) E
  3.       A% e$ p3 v# V8 \9 o) e' N( j
  4.     </div>
    6 ?: |6 o; B$ E; A# c
  5.     <div v-else-if="type === 'B'">) {0 ^8 l8 _/ v: n
  6.       B
    + R9 m- b# w( N" R! ^4 Z
  7.     </div>7 m: i7 Q+ J7 ?6 v4 ~
  8.     <div v-else-if="type === 'C'">3 `7 {. {6 T  Y2 M9 I' U4 C
  9.       C
    - d$ t3 j" v+ v3 x1 I
  10.     </div>
    + Y1 |$ x# }' }3 y5 d
  11.     <div v-else># x! i: y0 e' }+ T# N6 j" ?
  12.       Not A/B/C
    % g$ P- |* h6 e& R: `
  13.     </div>
    $ Q* _5 O$ J, q# y
  14. </div>
    4 n+ G% d4 b0 [
  15.    
    # U3 C9 R2 h2 @2 k0 x$ U
  16. <script>) y6 g# l; C- L* j
  17. new Vue({
    0 U) T; r) z  r
  18.   el: '#app',
    , x# V6 X8 O6 W7 d5 A
  19.   data: {1 ?: E! b% X) o& {# S
  20.     type: 'C') F' U4 S# t  t/ K+ S  K
  21.   }
    ' Q$ Q- E% V; H1 L' i8 O
  22. })
    0 ^) I+ g( C, d% `! s
  23. </script>
复制代码
! K1 V; B2 S$ D9 s
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
7 W! Z+ ^& u! o
  1. <h1 v-show="ok">Hello!</h1>
复制代码

  G8 x( H4 t5 ]$ X! U3 o% F/ Q+ E& N6 B; ]) T. d

9 p3 L; `% U+ o$ R
: \# }* ]6 j. x8 T5 P) Q+ c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:43 , Processed in 0.054608 second(s), 20 queries .

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