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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    3 F' C3 ~+ U! ^8 w9 x1 H+ u6 |& d
  2.     <p v-if="seen">现在你看到我了</p>
    5 o3 `# i! P6 k5 F) Y1 v
  3.     <template v-if="ok">
    ( _' H- ~" D, |# H% }3 h0 y7 w( a: C
  4.       <h1>菜鸟教程</h1>
    , u+ P3 u. ]  [, G% U
  5.       <p>学的不仅是技术,更是梦想!</p>
    6 C& T% N& o" ^: S1 Q0 o
  6.       <p>哈哈哈,打字辛苦啊!!!</p>$ i/ S8 x, x: r' S6 Y9 t
  7.     </template>3 @5 x" F! [' Q( K1 H
  8. </div>8 {! S+ s& t6 Q# K4 [4 o
  9.     / f& i0 m, q1 _$ n: B* x
  10. <script>% W6 f) r8 a, O
  11. new Vue({5 O& m' k8 Y: X, ~, ~
  12.   el: '#app',
    9 r9 `9 C2 ]( I* o" X+ `
  13.   data: {% V+ i) ^' a; H/ I- x; W
  14.     seen: true,1 _8 Y1 h6 n, q3 U- h
  15.     ok: true
    " g0 K9 Y. Z% O* M+ \: D# V$ p
  16.   }1 I/ ~3 y3 T: ^  W
  17. })  C+ `# [! J% c0 Q4 H. u7 ]9 X! r
  18. </script>
复制代码
  l0 l& @  f$ A& ~' F
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->6 [2 P: T, j5 ?6 j& }
  2. {{#if ok}}
    , L& s( \; {! U
  3.   <h1>Yes</h1>
    6 ]+ a) U1 h7 g% S
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

- Z" M# X0 T& _& L
  1. <div id="app">
    6 P+ w( R' r$ p( @
  2.     <div v-if="Math.random() > 0.5">4 g; x  s+ z# l* y
  3.       Sorry/ ~! K5 V$ j* d" a* n: T
  4.     </div>
    ( Z6 f9 O4 p$ x
  5.     <div v-else>
    5 [1 v* c! Y3 V# U' }
  6.       Not sorry
    9 L. T: I$ d# R5 X+ j7 j* I6 B! L" c
  7.     </div>2 q  V1 I+ C5 a5 F
  8. </div>0 c  W  ]- h4 H; G1 H0 C
  9.     . ^3 O. X! ~4 y
  10. <script>
    4 t: ]: {; C6 x* V& x
  11. new Vue({) a3 ~0 y6 w4 S  a
  12.   el: '#app'& f, W% R+ V! H0 a* M* \
  13. })
    6 j5 r7 m# T9 P5 y( |
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
4 z3 d( ?) `, n
  1. <div id="app">
    0 i" ]& D8 O$ s$ V+ ?8 g: k5 E
  2.     <div v-if="type === 'A'">3 \. _2 Q6 X1 I6 U- y  {
  3.       A% a; A  E/ k1 O- O" O
  4.     </div>) V4 O1 |8 |. |1 G4 |
  5.     <div v-else-if="type === 'B'">
    $ K4 o7 U0 J& e% K9 U
  6.       B
    * G5 f9 |4 Y2 `
  7.     </div>
    ' V3 j% b1 ~  U( J+ k4 I; u
  8.     <div v-else-if="type === 'C'">/ G0 \/ ?% k$ j4 D# ]& w! j3 H' k
  9.       C% r/ v  d+ F& j% R( t% ~+ `
  10.     </div>: }2 ~7 }3 {2 Z. [7 u# }6 w
  11.     <div v-else>0 F/ U) p1 [* A1 K" b) @6 s
  12.       Not A/B/C
    4 t( Z9 n4 W0 n8 r8 L. W! a# x# L
  13.     </div>  J! b& ]" ?( \
  14. </div>
    ' {1 v7 W; W: z8 L
  15.     * b5 Q* o  ~9 E! {5 L. }1 N4 k
  16. <script>
    2 F0 h3 P* z" J* Q2 p
  17. new Vue({
    7 x  a, E* |" H9 i: {0 d, a' p8 ]% Z* h
  18.   el: '#app',
    ; X) o$ ~* I  \! o
  19.   data: {( c0 P( b" {9 Q8 p
  20.     type: 'C'
    1 [  ~- j) I) `0 M
  21.   }
    & V0 E" m0 k5 o: T6 H- k* R3 \
  22. })2 E+ t& a8 ~. g' A& |3 q" A% P
  23. </script>
复制代码

! u" l/ `% @/ b# V$ i9 B6 X
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
' t6 d% ?) m8 v- T+ f2 \6 y4 K
  1. <h1 v-show="ok">Hello!</h1>
复制代码

& B, T1 d; l( a' f+ l4 R' u; a- o" A$ H7 `) o+ O& f, v
, _6 S+ G3 Y4 s: A( d5 s

; i- x3 O- A# K7 e7 j: X1 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 11:51 , Processed in 0.100987 second(s), 19 queries .

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