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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11320|回复: 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 E9 ]& U& y' b3 W$ l$ r" s. E
  2.     <p v-if="seen">现在你看到我了</p>, Q- H& O: z$ J, F: E) b
  3.     <template v-if="ok">9 r9 F5 B  b8 K! {9 v) H
  4.       <h1>菜鸟教程</h1>
    ! o* `( v  _2 b: d4 W
  5.       <p>学的不仅是技术,更是梦想!</p>! I# k) f+ m1 p2 J( p
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    0 c. s& [- C" r( G2 R
  7.     </template># i& w% `: i4 k% b
  8. </div>% B7 _  q. g! D) r
  9.    
    # q8 V1 ~% s/ |0 j+ z0 b# v" j7 ]+ i
  10. <script>  `5 t% |! s( {1 x2 ]5 D, y; r
  11. new Vue({
    3 U/ G0 J2 p& L8 A
  12.   el: '#app',
    1 F6 J, V& }3 n( q9 }9 g' Q! w
  13.   data: {
    7 H, o& I. g) D6 E: g
  14.     seen: true,$ p6 i9 G# q* H" a% I, D0 l/ `1 j
  15.     ok: true( @' l6 A9 Z1 v
  16.   }
    + {% k1 D# F9 u  g! F
  17. })
    - y% X- e( Q) @4 ]& F( Q
  18. </script>
复制代码

4 q$ s! K4 w$ J6 A% G' f
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->, h9 ]/ q5 q: M( S2 T
  2. {{#if ok}}
    + \0 ?9 F: `/ b# D. b: G% Y" H
  3.   <h1>Yes</h1>! Y8 ?% `: h5 e* o3 M* a
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
; f$ A5 X7 B/ Y6 z& n: s
  1. <div id="app">0 [, i) M7 x# I" O; G4 a3 V& {9 f
  2.     <div v-if="Math.random() > 0.5">8 [0 C4 [2 f7 x& X
  3.       Sorry
    % v$ N# |& L# J% H% G8 W* m
  4.     </div>1 T% r3 p( ?% c+ s
  5.     <div v-else>+ @& t, j. f0 E: z. K4 K  [
  6.       Not sorry& c/ ]9 j- }% n# o0 E
  7.     </div>
    " |' s' E% h9 ]4 u4 M* J! E
  8. </div>" g! ]5 \3 U& k$ @3 @5 R
  9.     ( s# U& B" f$ h* D' _! B
  10. <script>1 I( w- x& X% p: Z. b
  11. new Vue({) |" w" l2 F+ v0 j/ r
  12.   el: '#app') x+ [- ^3 ~" f0 L- {# l/ d4 S$ a
  13. })
    * [% u& q6 n# J# k6 j
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
7 H/ Q* x7 X: U0 i5 @6 I. B0 b$ {
  1. <div id="app">
    + L7 p( x) T  P8 `* \9 ~" f* z
  2.     <div v-if="type === 'A'">
    1 U4 X" ~2 U9 ^% `. x# d
  3.       A
    ; _. ?! z% N) R( K: j
  4.     </div>- @& B. H( X; g" Z
  5.     <div v-else-if="type === 'B'">" y) P/ V' f: f
  6.       B/ ?* {: a0 O9 o0 V* J9 z
  7.     </div>
    ' B2 u2 A3 x" l  K. H6 P5 x
  8.     <div v-else-if="type === 'C'">
    . k) ?8 q; j) N- w* ?
  9.       C
    ) _. }7 V6 K& n/ O8 _3 e* b, ^
  10.     </div>* g7 A+ p& b4 e- u
  11.     <div v-else>
    * t0 }6 e8 F: Y" R( [
  12.       Not A/B/C# T9 ?) }4 i; C& J
  13.     </div>5 l# q) ^) a( z8 l: z9 k" F. @
  14. </div>
    # _0 J: U1 |7 L# Z& k& ~
  15.    
    3 N6 ^5 U) W2 d/ a, _# F  C
  16. <script>
    ) t: \$ u5 r# d1 k. y6 J% L, g
  17. new Vue({- z  U8 \& M8 U0 D9 c
  18.   el: '#app',
      r. x( |  r1 x. ?1 f0 [8 C
  19.   data: {
    ( z  q1 z' A6 s9 L( p" H  k' ^
  20.     type: 'C'
    , P  N2 n9 m# n( p
  21.   }, m' r% x2 p  o0 v* a+ S
  22. })* m/ A2 J& X0 g5 y# Y+ @+ q
  23. </script>
复制代码

5 U6 l$ m. C) ]3 v2 i
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令+ P; R/ c) J1 F' B5 h6 M! L
  1. <h1 v-show="ok">Hello!</h1>
复制代码

7 a" @; e0 `0 ]) {$ |
; w$ Q( \4 l+ v' [: g6 \  d
. ?- v2 k$ M$ L6 i5 {) Z% h+ w9 s: J' _; O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:29 , Processed in 0.134128 second(s), 20 queries .

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