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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    2 l, a1 }# |& e/ X. G
  2.     <p v-if="seen">现在你看到我了</p>8 e) r0 d" w0 l8 Q  F5 H7 {
  3.     <template v-if="ok">+ t" P3 l1 ]3 ~* @8 {
  4.       <h1>菜鸟教程</h1>6 H- t) p4 F2 p# H& Q
  5.       <p>学的不仅是技术,更是梦想!</p>
    ) H8 }+ O" t/ `+ r" e+ O
  6.       <p>哈哈哈,打字辛苦啊!!!</p>+ b! Y, U& V6 S/ x4 s- |: c& s/ q
  7.     </template>
    5 A. D% t0 v* i; Z9 F4 D" B' E
  8. </div>
    6 l: L9 F; Z3 a. ~/ ~$ b
  9.    
    + e+ J. C" n) X2 _* C& d* E
  10. <script>$ Q0 r/ C5 u8 x4 C
  11. new Vue({% r5 l* K/ \/ a1 b% |' E3 Y* _9 M
  12.   el: '#app',, ^+ [$ o) p; y
  13.   data: {
    8 [6 ]/ \3 V" b0 w& `
  14.     seen: true,
    7 x8 u3 y* }& l6 P$ c/ r1 q
  15.     ok: true
    : E3 B& u8 g. l4 e: Q' L& s
  16.   }
    9 ]3 M! J0 b1 L
  17. })
    4 ]6 ?5 s; C9 \- P- L
  18. </script>
复制代码
. W8 T4 |8 X, Y3 [2 |2 s( }; J
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    9 ~5 G) b5 K7 F6 O3 z3 I
  2. {{#if ok}}
    4 O+ ^. q1 T1 j. e7 c* k, G
  3.   <h1>Yes</h1>
    ' o' B# z1 x4 y) H+ l* i
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

- {; W0 j) B3 `+ Z" h5 O" ]! `
  1. <div id="app">% Z! ~' m7 j+ U/ B
  2.     <div v-if="Math.random() > 0.5">
    4 s0 ^% Y1 r- O, [0 v9 K& i
  3.       Sorry& E& w6 n$ b* [
  4.     </div>9 A. H9 A! z0 Y$ q2 V3 T
  5.     <div v-else>1 K) R7 ^- y" s! V
  6.       Not sorry: Z# a/ P- L3 [: a
  7.     </div>; b/ v6 O% g% b' p& I
  8. </div>
    4 r: S1 h- N; v7 C. z
  9.    
    4 {+ t2 y# n7 }/ R; |
  10. <script>( \* E, h' @6 s
  11. new Vue({; s  e9 E0 A8 ?1 L6 e( n
  12.   el: '#app'
    - ?) h" h( o) u6 a9 M3 p
  13. })$ g# N, n7 `( h) o: k
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
: r! P9 P1 o  P# N
  1. <div id="app">; p. m2 I% ~3 ~( V4 c
  2.     <div v-if="type === 'A'"># L) ^! j8 r% B- i  \. G# o5 R
  3.       A
    4 L6 Y6 h, A- ]  Y' s  A4 r
  4.     </div>
    9 [+ G, _, ]0 d6 L/ a6 x* M
  5.     <div v-else-if="type === 'B'">8 Q( F1 N  ~# C. g3 E6 U" R6 ]5 G
  6.       B9 {' m; h  N5 a1 N
  7.     </div>
    : n' e% t) x$ M+ \7 e) M6 j. x' X
  8.     <div v-else-if="type === 'C'">& V( u# O  e. P* ~
  9.       C
    1 M1 ?' Y5 u" y, Y, B: J/ E2 N1 @
  10.     </div>
    9 S' c1 S4 N, C; D' I& W+ x
  11.     <div v-else>
    5 j- @( N4 i- z7 R' X
  12.       Not A/B/C* A/ @: q% V8 Q9 t
  13.     </div>0 d7 Y; Z6 z+ q  u$ M# J2 i, f
  14. </div>" N6 Z4 @7 [: g  Q) x5 u7 n8 s
  15.     4 a  v# t. T) e8 ~$ U- |
  16. <script>
    7 b, g, T2 `  \+ _( Q3 f
  17. new Vue({
    % s! v7 D/ ?( P; \
  18.   el: '#app',
    7 s8 s) F$ H- }; x1 S. M1 @
  19.   data: {3 l: u3 Q' s: e4 n5 T/ O
  20.     type: 'C'
    ! S% \8 N4 e4 Q
  21.   }
    " ^! ^& C; P3 h3 ^
  22. })
    ' \/ }; X& X5 i7 E: e; ~
  23. </script>
复制代码

0 ^5 _, w* I9 v9 g, A# O4 t6 g
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令- L8 m3 r7 _6 Y3 ^5 ~  p
  1. <h1 v-show="ok">Hello!</h1>
复制代码
5 G" M* O( \; y9 R5 R, F# b4 [. w
* W, }1 d" o: A' T8 H) ~; F" X* T
' p) }& P! G6 \2 S% X3 F

( {; ?% Z/ f5 J4 d& q0 W) d7 a6 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:06 , Processed in 0.053860 second(s), 19 queries .

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