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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    " y& a* E4 v7 L
  2.     <p v-if="seen">现在你看到我了</p>
    ( m7 J, e2 |% ]. b& s
  3.     <template v-if="ok">
    1 K! P* x3 d" R3 R, S2 X9 J
  4.       <h1>菜鸟教程</h1>
    $ E- J8 K, |- N8 O
  5.       <p>学的不仅是技术,更是梦想!</p>( T# d3 ]' x" \% M: [- q' M  E
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    % Z, f( s# {4 p) N0 Z. `3 n1 W
  7.     </template>+ e, x2 `; u- N* X* h
  8. </div>
    6 z7 y( D5 G+ T% }- T
  9.     / a- h5 D) T, A# M! r
  10. <script>, z2 B  ]# T: B1 Q* g
  11. new Vue({3 K0 Y7 l: G2 H/ w' l0 G+ u. {4 l% @
  12.   el: '#app',9 [2 }/ e) C# b
  13.   data: {
    . E5 G9 ~8 [, \  B2 ~' x
  14.     seen: true,
      B7 j5 G8 N3 m" w. t8 K
  15.     ok: true. Y' Q6 @, t) d# B6 H
  16.   }* Y( r- k* m9 b0 H/ g
  17. })2 S9 Y( t9 V, E4 j; {, Y, p$ U3 A; `
  18. </script>
复制代码

! h9 _. Q6 v2 S
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    & i) M$ X+ T+ a  }4 J. x% q% W
  2. {{#if ok}}' g3 J, W; ~; N2 m2 [: a8 i3 [
  3.   <h1>Yes</h1>
    % Q. h; ~' `8 d% R) M
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
, l3 i$ X2 b# F0 G0 J2 e
  1. <div id="app">
    1 p/ U1 o4 H9 `/ }% o: v
  2.     <div v-if="Math.random() > 0.5">5 P- n9 y+ j1 r/ W
  3.       Sorry" g* P+ N# s7 t3 a# U9 t
  4.     </div>
    4 ]1 A) v9 R+ O: u9 ]- Q" S; X
  5.     <div v-else>$ c) D2 w5 n) V  g/ i
  6.       Not sorry2 g9 {& A# g: e% O% x, C% n  ?( S
  7.     </div>
    / h9 _* f, x( _8 x( ?* f# j
  8. </div># {! I( r- t6 Z4 ^; c
  9.     9 u( v, a: \, z$ x2 X
  10. <script>
    0 E6 f& C0 p& Y7 a1 S5 u
  11. new Vue({
    $ i: ^' ^/ E$ Y' v
  12.   el: '#app'/ r1 z4 ]9 P3 @9 x! ], E4 q
  13. })
    0 {" H5 b; g# A3 z: h3 _
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
7 X. Z! s3 n8 H. F! P
  1. <div id="app">
    ' P" A5 b( ~8 j7 u0 @' W
  2.     <div v-if="type === 'A'">
    ' v9 Q9 a' I' U6 I$ x9 n, c
  3.       A$ V7 w% T, A# M3 c$ p& C
  4.     </div>
    ) ?, t7 v" j: V
  5.     <div v-else-if="type === 'B'">7 W% e( x' [% u" E
  6.       B
    3 Y: n' F5 s+ W, M: y
  7.     </div>
    : d% h: K' N- ^6 J) l
  8.     <div v-else-if="type === 'C'">/ h( F  C' \3 x9 E; m
  9.       C; F+ u3 v  _& U4 B! i) G
  10.     </div>
    % P% e0 N- J& o, @( {. ]* a; z  E
  11.     <div v-else>
    " I8 z" R/ l% K1 v5 G1 l" y
  12.       Not A/B/C
    4 p% N& N! j! q% \# Z
  13.     </div>- q- s0 J3 c; ~0 Y6 t4 o
  14. </div># ^& D. X0 W/ K
  15.    
    " A- o; \  {) X/ C$ ~  ]+ o
  16. <script>
    / g4 Z, T. G: X) A' h
  17. new Vue({4 X4 ?; w) m- P) e4 G/ r
  18.   el: '#app',$ j3 f2 @, {; R, g. i+ @
  19.   data: {. T. B: A# S* E( V+ C$ w) }1 A
  20.     type: 'C'# ]8 g# M0 D$ V2 S
  21.   }
    4 o* p& s* t  v
  22. })7 N: A. A- [$ F. U# H3 ]
  23. </script>
复制代码
; k! [5 Y' }6 r4 n8 L$ g
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
! p& [% z7 L; i. O  F; b
  1. <h1 v-show="ok">Hello!</h1>
复制代码
  G2 e9 V: W9 l; O
) ]; z3 l0 r* J! t( N( t3 U/ J
) H. h6 a4 a& ?

. v& T3 Q$ L! a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 15:02 , Processed in 0.052868 second(s), 19 queries .

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