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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11325|回复: 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  M# K6 W3 d
  2.     <p v-if="seen">现在你看到我了</p>1 h  G/ s! Y0 R6 N
  3.     <template v-if="ok">
      o/ S: O! u' a% h# b
  4.       <h1>菜鸟教程</h1>. W' b- S0 U7 `( c% M
  5.       <p>学的不仅是技术,更是梦想!</p>
    " m( L( X: d% \; Z
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
      S0 t! X4 k2 [. j$ r! \2 }! y: Z
  7.     </template>
    0 g8 H1 r4 O% r3 @7 g/ Y) \
  8. </div>
    % K7 W: C9 d9 k9 K
  9.     ( H3 P- l- b. {/ P% ~8 G, L1 ?3 _
  10. <script>; }- z) M2 @. a2 y
  11. new Vue({& r, q) V4 }: M4 E+ N5 O# D
  12.   el: '#app',
    & X8 L2 X, R& H+ a5 b3 n$ I
  13.   data: {
    : @7 }2 g* ?3 E( f3 n8 G- i, [6 ^7 L
  14.     seen: true," ^! S9 i- ?3 k# ~; S% F# a
  15.     ok: true
      {7 @- M" w3 o# \- [/ D8 m  E
  16.   }2 e( ^+ N' B1 E' P
  17. })
    % e& L+ z: B& X% M4 v  X
  18. </script>
复制代码
/ P/ N! _' w% S+ Y+ Y. v0 b
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    1 m5 _' ]# x9 l  J& H
  2. {{#if ok}}. X* p  F1 V: J0 E
  3.   <h1>Yes</h1>
    ; H. c3 K9 D  [2 j* b7 P* j( X
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

- w. \# _, U+ W/ e$ W9 E! Q
  1. <div id="app">  m9 g, `0 O. A: Y% V+ v& {
  2.     <div v-if="Math.random() > 0.5">0 m. }/ r; u* v( a% d! {2 Z
  3.       Sorry
    7 Z8 O% j8 m& v/ w1 I, ^
  4.     </div>: n! [. B  Q) F
  5.     <div v-else>! D: j* I" u/ d3 X0 }4 R
  6.       Not sorry: \* T1 R. g1 Z, l9 D/ [1 X$ ^
  7.     </div>9 I# G( |, c7 u- i6 q$ M
  8. </div>& Q$ [% W  U. x/ U* R
  9.     3 m/ v, K1 F+ B! J
  10. <script>
    7 d" V& w; V" Z/ T% ]
  11. new Vue({0 |) o8 H! _2 M: u
  12.   el: '#app'
    / y- E; i0 |' }2 T0 t
  13. })8 F' e" M9 p/ `( a+ \
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
$ S9 p% E2 [, J1 m4 \3 D* H
  1. <div id="app">
    3 N; b6 L. K; o( \7 U( v
  2.     <div v-if="type === 'A'">
    / S" ~2 r$ I/ @9 M6 b0 U
  3.       A* f7 t6 U. ?6 ^) L+ f! C7 t
  4.     </div>" b% S% r  c- r; e- D; J" y8 ]
  5.     <div v-else-if="type === 'B'">+ v: G  l" w# h/ s( Y: k
  6.       B
    ' J$ _6 Z( _; q" w0 d
  7.     </div>
    . H8 r4 g% ?8 {1 a& [; h! Y
  8.     <div v-else-if="type === 'C'">
    6 i7 |  T. R" R4 O& w
  9.       C
    - Y8 w& Y- c/ a/ s+ G. f
  10.     </div>
    2 D$ x3 B+ O) t9 y2 q
  11.     <div v-else>
    * r4 h8 l3 g5 ^# R7 @8 S
  12.       Not A/B/C
    0 k  V6 v& m6 Z
  13.     </div>5 C& \7 H% C' a
  14. </div>
    3 `6 Z7 W1 M8 T" d) b
  15.    
    & m( R1 K1 n) l; y* I
  16. <script>8 q4 `( G) u- U( W0 s
  17. new Vue({
    / ^* w9 q; }- l& j, N1 x
  18.   el: '#app',
    5 l! y/ o7 j4 A, y1 v
  19.   data: {
    # I) f7 A7 `4 F1 h4 C
  20.     type: 'C'0 r7 E+ ?' Q  g& q4 a; T6 |
  21.   }; b% I& e# v. _8 S$ r9 f: t$ ^
  22. })
    0 v4 V/ v% w8 G; K7 Z' P: g. s
  23. </script>
复制代码
+ t/ W6 |1 w- e
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令+ Z) b! w+ C" U) c* c4 x
  1. <h1 v-show="ok">Hello!</h1>
复制代码
. J9 V  ~& ?4 j7 M. Y) z+ ]4 c- N

) ^" n$ c$ E/ F; ?& k. m2 E, T8 k( d7 w; a( g3 S) N

: `" @/ A9 o# C' S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 17:28 , Processed in 0.124607 second(s), 19 queries .

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