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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">! w" z! ?! J8 p( }: y2 J9 ~
  2.     <p v-if="seen">现在你看到我了</p>
    5 p$ h: s3 @9 ^. l( A; u
  3.     <template v-if="ok">& G& K1 P9 b2 |
  4.       <h1>菜鸟教程</h1>- C$ C7 B, j' h9 V$ B) N4 e% X
  5.       <p>学的不仅是技术,更是梦想!</p>6 i) M/ O, ^. S) b$ [% Z) H
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ! I0 d7 U% x8 s' C: O) s# S
  7.     </template>9 Z( P& D$ N0 \  Q1 r' d
  8. </div>  y9 v* G- H: z9 b" a6 _2 C' B: U  u
  9.     4 q3 H* F( }3 ~- K2 ]7 M9 k4 l  q, a
  10. <script>+ B; z& Z0 W. f4 S6 n
  11. new Vue({
    / Y, E9 ?; q2 `6 d7 m9 j
  12.   el: '#app',
    " t& ~* N5 Q4 j, I/ }3 ?* z* Y
  13.   data: {
    3 \* [7 E; F' [7 X$ ]. z' f
  14.     seen: true,% V6 @- `  S; T2 P2 o
  15.     ok: true* s. I4 f' ^, ?! z$ O
  16.   }1 \* `; N7 E" S1 w: [
  17. })+ ?& Z3 {# i: G) \' r; M2 q8 F
  18. </script>
复制代码
" I3 v$ g- K1 a2 c( k& V$ e
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->  b$ B" ]2 @4 ^) W
  2. {{#if ok}}
    ; m- }1 f! i2 X0 w. x! v6 R
  3.   <h1>Yes</h1>
    * [* S6 p" {9 Y# X
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
. _6 P8 R5 ~0 s2 F
  1. <div id="app">
    6 d' y. T$ S5 W3 N6 [5 u* W
  2.     <div v-if="Math.random() > 0.5">! N- I- K, D+ O. D/ r- O
  3.       Sorry( c. k# Q$ C! H( a; n' z; z5 s
  4.     </div>
    7 m( n) x; A$ W. N
  5.     <div v-else>6 h) s5 B; @* [7 e1 ~* ?/ S) d
  6.       Not sorry
    1 p+ P% v* Q+ e3 I2 V
  7.     </div>0 p  q% l/ n& {' B! t! B" A
  8. </div>
    : X5 j8 R+ i. d& K" U
  9.     : R1 Q( `) p$ d# @$ ]7 @8 ?8 C
  10. <script>  J! j: e4 K- Y" v# ]
  11. new Vue({
    , @* L0 N: ]+ D% e5 S
  12.   el: '#app'
    & o7 ?# X; S- w5 U( s
  13. })
    " ^. g/ R5 h# D5 r! A+ @
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

, d; m- {2 _) d( q) U6 T& |2 U" L7 _. b
  1. <div id="app">7 y8 x2 E* _- [
  2.     <div v-if="type === 'A'"># f$ f$ ]6 g/ N- N; h
  3.       A
    3 y: l, g; K# J8 S$ s
  4.     </div>
    0 m. ]3 @+ O9 |9 j! s
  5.     <div v-else-if="type === 'B'">
    & G8 }. R7 ]* p& T
  6.       B
    ( b+ Y# y4 }6 s  n
  7.     </div>
      `2 h- J+ ?4 u
  8.     <div v-else-if="type === 'C'">( l0 i  Q7 V) _! p
  9.       C
    5 e- h( C3 ^) k% J0 Q+ H
  10.     </div>
    % y: e+ v2 v  k5 D0 M) {; |
  11.     <div v-else>7 I- x8 S2 w. x1 I* ]! ]
  12.       Not A/B/C* C: M, H9 |& g2 Y- a
  13.     </div>
    ) z& W# Q$ _4 @: I
  14. </div>  C# A. S, G- L3 [
  15.    
    ( @3 g# d, f- S6 s4 `2 K
  16. <script>
    + w- @6 n) J( v$ }" u2 n; G
  17. new Vue({- x. a( N2 K* @: i% A* h6 v% j
  18.   el: '#app',; j) o! ~4 M. k- S0 i
  19.   data: {- c6 |6 \- \9 i6 b% F
  20.     type: 'C'
    + J2 L% P0 {) W
  21.   }
    / F2 q" @! |1 r" C8 W9 o' j. t: s
  22. })
    , ]; J; z, G6 I5 V+ j/ Q+ W$ }" V
  23. </script>
复制代码

- _. v4 o7 j+ Q, D; p, Z
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令2 O; `# r% W) O- f: o7 b8 M8 K) e
  1. <h1 v-show="ok">Hello!</h1>
复制代码
" p2 j. Z! Y9 T

8 p" c0 y4 F" ?, \+ V8 W% a, c; G: P9 \
# `# {! L5 C, @& B4 E; v6 Z( w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 20:19 , Processed in 0.076461 second(s), 20 queries .

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