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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    ! e9 X9 O" j1 |8 R1 g& F
  2.     <p v-if="seen">现在你看到我了</p>
    4 _  x( |7 ?6 Z7 ~' K: ?
  3.     <template v-if="ok">6 k7 i* q2 A3 H- o/ U7 j; }) m- z
  4.       <h1>菜鸟教程</h1>
    9 K& k1 `! |0 S+ V& s& F$ O
  5.       <p>学的不仅是技术,更是梦想!</p>
    ( ?3 n/ ]) h& b, a, g
  6.       <p>哈哈哈,打字辛苦啊!!!</p>, B; o' v- R! @1 v
  7.     </template>
    ' ?$ F& T3 Z+ X- E; @+ E
  8. </div>
    8 }4 ~0 i! H# J* U5 V& j; R" _
  9.    
    + y/ X) P& v. C3 V
  10. <script>
    1 O% f% k$ Y' s
  11. new Vue({2 f. j# y. U# v
  12.   el: '#app',2 w% D$ m# f+ T1 D) Z2 f$ t
  13.   data: {7 ^" N% G' S. ]4 q% s
  14.     seen: true,/ a. e! l: P. h' q) z7 [% C  N7 X
  15.     ok: true
    5 ~, z# i, W$ m/ |
  16.   }
    ) \4 n$ v, q+ i0 l3 H& b. j9 p
  17. })6 q: g; K" }0 {4 D  [" m
  18. </script>
复制代码

7 g( a' h. z: [7 G
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->6 S) x( u7 `4 T1 f% d" d3 ^
  2. {{#if ok}}
    4 f( O0 S0 H' C4 W; s
  3.   <h1>Yes</h1>
    $ l7 v: p# v7 h2 a0 ]' g% @
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
+ ~9 `! y! k& Q. K/ ?; u! G( ~" K
  1. <div id="app">6 Z: X" e$ |; G$ u, n0 Z& o
  2.     <div v-if="Math.random() > 0.5">
    % x) q- u$ K% ~% }  y
  3.       Sorry( U" P& h, r2 K* r9 V
  4.     </div>$ l2 a- W; x5 a  m* L
  5.     <div v-else>; p/ _$ M' B0 W5 B. ?
  6.       Not sorry) C) ]# y: A; r1 @4 i
  7.     </div>
    ! b, y6 @) B. f' V( k
  8. </div>
    % k) T) r% O) L4 N. x+ J
  9.     $ N, V4 u9 {" A* D) T* G6 P
  10. <script>
    5 G: z4 n3 {' u, x. F
  11. new Vue({$ j  s! u1 B7 q
  12.   el: '#app'0 R- L5 r8 z) F8 |* H$ |% Q1 C& p
  13. })4 i; M7 B" a& N. Z; v
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
; u4 @* S/ F- Q$ x
  1. <div id="app">1 P7 ]) k! R* D" |$ m- x: h
  2.     <div v-if="type === 'A'">7 _- e2 S6 ?. n
  3.       A
    # j) \: g, Y# {; ^6 x% i
  4.     </div>1 s" R  v& e6 T5 u5 ^  M! m% L
  5.     <div v-else-if="type === 'B'">
    " l$ d8 s) [' k' v
  6.       B3 a5 v# o' J0 i0 O. P' \* p2 L
  7.     </div>/ A4 z( ?& d1 h6 k  Z( S5 l
  8.     <div v-else-if="type === 'C'">5 j) _9 Q9 ^  E& X* o
  9.       C
    ) }; w+ ~1 f1 E+ z, U
  10.     </div>5 K% Y* j" T( Q* R0 E5 W
  11.     <div v-else>: K0 q/ @( e& J, j% Q9 H
  12.       Not A/B/C: P* r5 i" v0 K! G# e# g
  13.     </div># O/ c2 L" G0 k! l5 A! c; X% v$ E
  14. </div>
    9 V# a! h" `+ C
  15.     , \! `0 Z5 o* L0 h0 J
  16. <script>0 n7 Y! |" L2 p, Z( Q, R
  17. new Vue({
    4 x6 A6 v6 H6 O' w2 V6 _3 q# q
  18.   el: '#app',
      W8 Y2 Z0 ^9 v
  19.   data: {8 i. k- s% d" Y3 F+ i! i8 }9 Q1 r# e
  20.     type: 'C'
      l7 U0 `% [6 H3 y, M; c8 ]: U
  21.   }
    6 f. D) t* J+ |" Z7 q% D9 m; I
  22. })
    ) G: L" k3 _+ S1 ]3 `) f/ F
  23. </script>
复制代码

9 f  U3 G/ N2 f/ O* q
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
' P+ U5 J) d4 ~' r
  1. <h1 v-show="ok">Hello!</h1>
复制代码

0 b& D1 ?) X  V( [$ d8 [0 N
' K- ?; g8 r4 C- }1 I) J
  _% {) L! M  f2 d
& g9 N" V" D( Y( I4 e% ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 04:18 , Processed in 0.053720 second(s), 20 queries .

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