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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    $ S# _4 T9 W& G& h6 U" q8 Z
  2.     <p v-if="seen">现在你看到我了</p>/ y. J# V8 i3 B
  3.     <template v-if="ok">. T0 y5 Q2 Q; o2 l! D, |( ^
  4.       <h1>菜鸟教程</h1>$ l, ]4 L, H/ O7 I& I
  5.       <p>学的不仅是技术,更是梦想!</p>
    , g' m: q: v* h# G. ^: P
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ) z& a1 j: M8 ?; k
  7.     </template>
    0 O/ e6 i  t5 D5 |: L
  8. </div>
    + k5 O. _/ [( v% \& O  p( T
  9.    
    : a  ?% L$ I9 N/ \/ _' C; W
  10. <script>
    1 R, E8 z) A# T* s8 T) y) ^
  11. new Vue({
    / N2 y) ~- L2 r8 X/ ^2 i& s
  12.   el: '#app',3 }/ f8 e) P7 P
  13.   data: {
    $ q" k/ j+ `" ?1 C# X) I
  14.     seen: true,. B& n, M( J2 c0 G0 Y
  15.     ok: true
    - L" r3 c, `, J, h, L
  16.   }4 D: _9 Q' e* Q
  17. })
    , Q. c0 ~/ @5 n  H8 ]/ f; n. `
  18. </script>
复制代码
& C$ q  g# x3 F0 {! w6 a! x+ `
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->: z# l6 ^1 }: f8 {, q+ Z
  2. {{#if ok}}
    ( e5 X" H% y9 z) t: u
  3.   <h1>Yes</h1>
    # `0 f. ^  f7 M& s
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
" Q% M1 [$ J2 x6 ~0 d; O
  1. <div id="app">% _1 e5 ~( v5 q! I# ?0 o
  2.     <div v-if="Math.random() > 0.5">
    # j+ I5 i, }8 Q% m' x) G& B; F* E
  3.       Sorry
    ; q) T& q' d: v. T$ T
  4.     </div>" D2 {9 M5 y; w
  5.     <div v-else>  L8 F; G# z$ e  O, X: D
  6.       Not sorry8 S! ~0 L+ @' B5 M4 T) k
  7.     </div>
    7 d9 @6 p; @8 z" g/ {
  8. </div># Y1 p4 ]% O6 a8 E9 \
  9.    
    2 k+ Q" e. o& d; e; w
  10. <script>8 q$ ?. |7 T- _' y+ Z. X
  11. new Vue({9 ^6 @# g: H$ u  `& |$ ~0 L
  12.   el: '#app'2 D7 s1 ^) \! [( p  F& F1 p/ x
  13. })4 ^" h7 ^. e/ ^
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
6 _+ L8 S' Q) W3 X+ m2 c: h
  1. <div id="app">
    - h' ]! h: U( B  r; n  f/ F
  2.     <div v-if="type === 'A'">* U4 Y1 }, O( \2 R
  3.       A9 y0 S4 a  a6 }. P: d9 U* F0 p( e
  4.     </div>
    . K- D% b( E9 J; u. {% {1 R- \
  5.     <div v-else-if="type === 'B'">
    ) ]: l7 G% B! ~3 D
  6.       B1 v! p4 T! |% @& `6 ~3 O
  7.     </div>, x* C$ L# u) N2 _0 h. r( E# `
  8.     <div v-else-if="type === 'C'">
    + s" g/ A4 s" ~0 i& w% c" G
  9.       C
    9 N& [% C4 f& @# _! z
  10.     </div>
    . I# k9 A8 M, n( E  K) q( K+ G4 y
  11.     <div v-else>
    ( P; m5 c9 r0 H: q' A
  12.       Not A/B/C3 T" G' `( Y+ W
  13.     </div>
    , ?/ Z* P9 X9 D" j
  14. </div>
    % ^$ S2 B% ]) u' g
  15.     6 K0 `, r7 \& @( G. Z
  16. <script>/ ~+ a7 ?3 f. S- T% m! N
  17. new Vue({% d( N9 w$ L, h) m4 T  s+ [
  18.   el: '#app',6 y/ A+ u  ?3 H/ y# O
  19.   data: {
    + F( m) u. x. Q# X) p
  20.     type: 'C'
    . l  T# \0 W) ^0 L( b: G! A
  21.   }" O0 \& j5 J) n* ]# ]$ |7 ]9 N
  22. })# K. I: O& [1 s. y! y# x8 `
  23. </script>
复制代码
9 \) [+ B' ~" y+ e- s/ E0 @7 o0 C
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令# P2 H* z$ Y4 K9 E' v1 N
  1. <h1 v-show="ok">Hello!</h1>
复制代码

9 ~5 m2 {. a% T$ Z! o2 K$ T: M
- f' P; @  i3 Q5 z6 p6 R% c! g$ Q' z1 s

& g7 H0 Z- J, \+ |" a5 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 13:36 , Processed in 0.106426 second(s), 19 queries .

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