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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    ; Y% M$ I2 D" o& |. H- C3 W
  2.     <p v-if="seen">现在你看到我了</p>+ {( r* L* m5 S7 V
  3.     <template v-if="ok">" W" U5 p/ w5 v
  4.       <h1>菜鸟教程</h1>
    ' |% m7 o. W5 n$ l7 [6 c
  5.       <p>学的不仅是技术,更是梦想!</p>. f' b* T1 l5 M# ?/ o
  6.       <p>哈哈哈,打字辛苦啊!!!</p>/ E" M3 i% p' Z
  7.     </template>
    ! \0 q; u6 D) j% u7 }$ E
  8. </div>
    . f+ |4 [" i" v- V! R5 p
  9.     & t! A$ l. T1 ~5 o# a
  10. <script>
    . A# w: ^; H  d
  11. new Vue({
    ' s  x* ?  t+ g6 r; N$ A) O
  12.   el: '#app',$ U" C+ E# F" u  \
  13.   data: {
    2 D3 F( c: k" j/ o1 D! B$ v
  14.     seen: true,7 X  F2 ]4 F! z, P' n
  15.     ok: true( X+ k: m4 `) r$ j! x; W4 w
  16.   }& I. F6 }2 W5 H1 p* o: o0 G
  17. }): k# e: R  |% Q7 @. t& A
  18. </script>
复制代码
( s5 [5 `+ ^7 J& u7 [( `/ m
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->1 `4 u; x( R  E
  2. {{#if ok}}
    0 L+ Q7 M6 p; y1 u
  3.   <h1>Yes</h1>
    9 q* g6 R2 d0 ]4 L" C
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

. ^; G- {5 T# B2 X* L1 ^* N* }- f" V
  1. <div id="app">( ~6 X) y( r0 s. ]
  2.     <div v-if="Math.random() > 0.5">
    ! R1 J. `" H5 j3 F% g, T  ~
  3.       Sorry; x. O6 K$ @1 R! c9 z# i( y
  4.     </div>
    4 y$ y" M' W, U9 G6 Z$ @/ O
  5.     <div v-else>
      S2 T( `, U8 x& t, h/ W) @2 t
  6.       Not sorry
    + G  m* @9 \: L9 c
  7.     </div>  |% i7 {/ m' U0 K- Q9 x) M$ b
  8. </div>
    3 D' A" J4 G: n" c: a9 E( ^
  9.     # y$ Z4 i! `/ l& j* f
  10. <script>
    0 o! M+ v& e  T- k* G
  11. new Vue({" n/ b# f" A  W& @' z- u
  12.   el: '#app'. K: u0 [: }8 {/ X
  13. })  Y/ M9 Y- \6 Z  k! K0 l
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

6 b! S8 D+ i6 l3 L( ^3 Q4 P
  1. <div id="app">2 J4 X6 T1 C9 w3 ~$ C% k  ]
  2.     <div v-if="type === 'A'">) t5 d/ y2 I# v8 {; \
  3.       A
    # z* j  L3 g! V5 o2 D0 `
  4.     </div>4 G# I3 q2 e3 M% k8 U- b
  5.     <div v-else-if="type === 'B'">2 p6 e2 Y# [2 i, J" A: N
  6.       B6 h' _) r# T! m" T# ?- H" N
  7.     </div>! j" J+ z, I9 o& j& f( A
  8.     <div v-else-if="type === 'C'">) F5 {+ ^/ s+ y+ Q, e
  9.       C" [3 Z+ Z" Y) e. [
  10.     </div>7 S* _0 U9 T& m/ ]
  11.     <div v-else>7 b; c( H) M* f$ o: X) Z
  12.       Not A/B/C
    + x9 U: L" k  K# X# S2 |: }# z3 q0 u
  13.     </div>
    4 j* B' _/ S! p4 W3 |: h
  14. </div>" ~. J0 a8 ^% L2 D
  15.    
    9 k. r+ B9 z0 m3 G% V
  16. <script>9 z* W+ i: `& ^
  17. new Vue({
    5 b4 i6 ]' _* n0 [9 D* K
  18.   el: '#app',+ u9 ]; E; {+ a' x+ [8 l5 M* p
  19.   data: {
    ; ]( Y  O9 ]) R9 s% H
  20.     type: 'C': G. g! ^0 `- o, v- k5 E6 C% ~7 `" ?
  21.   }, e: \# n% C) |
  22. })6 B: [! g" u, ?+ U
  23. </script>
复制代码

3 b* v, {5 U9 g  D, A
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
! Y; A/ {% }/ C! G5 q
  1. <h1 v-show="ok">Hello!</h1>
复制代码

% s2 Y1 b. t" D, K1 [5 X! a+ `# B- B( U0 |

; P' V% ]0 z+ r8 n6 C
5 [3 i, L# ]: D) O& B" H" t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 19:04 , Processed in 0.049692 second(s), 20 queries .

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