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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    $ ?9 \# i& ]5 ~" s. u
  2.     <p v-if="seen">现在你看到我了</p>  T1 e; m. \$ h- ~6 j
  3.     <template v-if="ok">
    : Y) f' E7 Z% A5 A1 ?- W9 `2 M
  4.       <h1>菜鸟教程</h1>
      o& x- @# \" {$ L; s% f- T
  5.       <p>学的不仅是技术,更是梦想!</p>
    % v* G8 w" K7 E% I+ b
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ! P5 W$ l# W# l8 L
  7.     </template>
    ) n) M8 H+ l& f+ J
  8. </div>$ H! P& t% ~' d( G) F
  9.    
    9 L# u6 i4 @: X6 F( |. U. m
  10. <script>- \$ A; e) s/ ?0 C
  11. new Vue({
    2 O0 A3 D* x, h- D' [
  12.   el: '#app',8 Q/ K8 _: ~( d
  13.   data: {
    / t* `, a+ j& Y5 F* w
  14.     seen: true,
    ) D$ Q  ]. D3 S: y4 i% S
  15.     ok: true
    . A! ?9 i1 ^6 H4 S6 I( x
  16.   }% x- A- ]2 ~3 C5 X& |' x
  17. })$ E2 l6 U% E( C6 N+ e1 D5 V4 N4 f
  18. </script>
复制代码

/ `" J2 z2 `) b; M
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->2 c$ n/ g* N8 }6 A9 c0 o
  2. {{#if ok}}: d) L# Z6 |" a& Z7 o( c4 p
  3.   <h1>Yes</h1>
    ! X6 k4 u/ w; J% F* Q
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
( |2 ^3 U2 A! @( J+ \$ O2 {2 B: w; `
  1. <div id="app">
    ) |0 c/ ]  B$ x' ]
  2.     <div v-if="Math.random() > 0.5">& t5 R1 [& i. G* I- V! x/ z
  3.       Sorry) Z1 o# \! g& S3 O0 |
  4.     </div>% R" \: M: [6 T! F9 s
  5.     <div v-else>
    : V& b/ x# z- g; d7 k4 i
  6.       Not sorry
    2 }9 m0 v. Q/ g& \( }% \6 M% d
  7.     </div>) W; \3 h4 o0 k5 s- e  o; j- p/ B5 h
  8. </div>
    6 t$ f' b' ^0 v6 m+ b
  9.    
    ' b4 N6 l$ ]( O  v7 X) V, k  c
  10. <script>+ {" h3 r" e  t
  11. new Vue({% Z" p; R' x1 {4 d5 @; \$ X
  12.   el: '#app'
    + Z, W* s; D' D# J& O
  13. })" `' {& C, T1 ~" @/ b+ \9 f0 d
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
/ T1 i: `/ _3 F5 g; @
  1. <div id="app">
    + f: E5 b6 |, }# y* W
  2.     <div v-if="type === 'A'">
      ?5 d: u" ?. ?# Q3 p( }
  3.       A
    6 r4 ^( [% z9 p+ o
  4.     </div>
    : i; w% o$ {  w" V
  5.     <div v-else-if="type === 'B'">& J* a  A( W( }3 \; W5 P& @
  6.       B8 R8 K$ ~& P" x
  7.     </div>
      @2 R% y2 m3 A# j. E
  8.     <div v-else-if="type === 'C'">" v3 U2 Z" B& _% X
  9.       C
    * h: R( \$ i! F" J
  10.     </div>
    * L1 E4 b  k: a& b7 k  l! `  ?
  11.     <div v-else>' n! I+ K* N7 ~! ~* ~3 `
  12.       Not A/B/C+ y6 O& [# Z" Y
  13.     </div>' A* f/ w! O. h9 n  \/ h
  14. </div>
    - P1 {' i) y5 v0 D- X3 g9 r
  15.     6 K+ p; K) Y% V1 f4 S
  16. <script>1 ~* z8 j) }) s
  17. new Vue({
    ( D+ _" D/ o$ i( q
  18.   el: '#app',( K! s- t. B5 @. y, s% Z4 u8 L0 z6 w% \* F
  19.   data: {, G, `+ l7 }( {: \( K; [0 B3 f* B
  20.     type: 'C'/ C/ i* z. K* z& D9 N
  21.   }: l8 W4 V7 j; r6 p$ u
  22. })
    , c) P( T. Y% p, {
  23. </script>
复制代码
8 I" B' n8 R1 C$ }1 f
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令" G5 n1 H/ g: r/ d1 a! `
  1. <h1 v-show="ok">Hello!</h1>
复制代码
1 Z, H, W0 V7 ~) p% }$ R: J& T
+ g' q+ d7 u. E# a$ x6 ]

% d$ W" j) L, U( y& B/ Z& P
" @9 w4 M2 Z& K# Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 23:34 , Processed in 0.074771 second(s), 19 queries .

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