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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">' o0 Y9 p6 w) f7 m& s8 ]$ U, u
  2.     <p v-if="seen">现在你看到我了</p>; K7 l, F4 m; N  O8 ]1 c4 M
  3.     <template v-if="ok">
    / j" h+ R7 G3 j! @
  4.       <h1>菜鸟教程</h1>1 b, U4 u" B1 Z# y3 h
  5.       <p>学的不仅是技术,更是梦想!</p>4 T4 s$ D$ J, X5 E! @) v
  6.       <p>哈哈哈,打字辛苦啊!!!</p>$ x: u; I, F. F
  7.     </template>
    8 J' V& a: D; g, Q* o  z
  8. </div>7 A+ ~+ I/ ]& O
  9.     $ f7 I. M. G( [% N; k& b( C
  10. <script>5 f7 {# }$ U' T7 a3 ?
  11. new Vue({
    ( E1 {  f+ c0 E  q' b7 B
  12.   el: '#app',
    2 ~3 }% A0 E0 m6 }4 g! d
  13.   data: {8 ~: j; Z  R- w, k8 V
  14.     seen: true,
    - y0 R0 }# j0 _) |: H7 Y, M- K
  15.     ok: true/ y' @5 [% a7 Z. F5 Z) h: k* M
  16.   }
    # a# M" A# b. F2 g9 q
  17. })! G& y1 d! r6 k' f# X. i
  18. </script>
复制代码

  H' ~) e) b& A
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->$ x; f6 F# I3 j' H9 \0 ^6 f2 m
  2. {{#if ok}}
    ' Z2 s' F& {" ?4 D. y0 Q; b
  3.   <h1>Yes</h1>
    " R9 x4 v' ]; K( `3 K* T5 l# E
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
; P! g) Y2 j% f- e+ |7 _; u
  1. <div id="app">
    ' ~$ H# j; u6 \9 R) _
  2.     <div v-if="Math.random() > 0.5">
    : ?+ @, [+ M) Z- p! H7 C
  3.       Sorry6 i" A- F" e6 K$ h; T
  4.     </div>2 u/ Y; ]& x1 D" R/ L$ ~+ f
  5.     <div v-else>0 J8 n1 A+ f" i$ Q3 h; W
  6.       Not sorry0 w) K1 v/ A& u9 Y9 Q
  7.     </div>
    " u- B8 r/ S8 z7 w
  8. </div>
    . Q2 Y; H+ q5 f2 R& {
  9.    
    * d! _" K  Q9 z6 P
  10. <script>
    6 A  U4 Q8 k3 W. b5 S! R
  11. new Vue({
    # s7 b. p- B, e2 k
  12.   el: '#app'! C* Y7 f) m6 y/ m- k: D
  13. })) ~; Q: {0 K' D$ q
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

8 W6 W/ {! I$ B$ X% J. u
  1. <div id="app">! a. P% U8 ~$ D2 U3 [
  2.     <div v-if="type === 'A'">& @: z3 s1 P1 z4 I' m2 U
  3.       A
    3 C2 k6 o# Y. Z2 Q8 y
  4.     </div>
    2 x8 k5 W( r' U  Q+ b6 q) \! s, M0 i& O
  5.     <div v-else-if="type === 'B'">
    # o. _) [3 P( e2 x
  6.       B
    " P5 A3 x4 Z2 u1 y$ x$ l. b/ P7 f
  7.     </div>
    / f. j# H7 x: J& l4 `3 j
  8.     <div v-else-if="type === 'C'">
    , }8 H& w2 B; k" V, Q, S' {
  9.       C1 G/ ~/ d. G8 z; ~" i* M- \
  10.     </div>
    & w0 G  o+ w6 ]" s, n: A4 r
  11.     <div v-else>% ^* k& h- e+ o, T1 ~( V( H  {" _# [
  12.       Not A/B/C
    3 Y. U7 r" `# Z2 X' y. |. M
  13.     </div>9 D6 R. E& l2 \+ w; q
  14. </div>
    % }$ k) J% V1 K) r
  15.     ' ]6 \1 C. }+ }! ~. n  R
  16. <script>, c! x4 e; z. c1 @( G* O/ Z
  17. new Vue({* ]$ k; A, }' N) z4 u6 w& {, G3 B
  18.   el: '#app',
    9 r# P1 f$ D  ^9 {2 |
  19.   data: {
    ) P# m# U2 s& [. f1 J
  20.     type: 'C'
    # _9 W7 Z$ c4 B0 H7 O& |0 Y
  21.   }% ^7 I& G. m. G2 u
  22. })
    " f; n1 R+ u5 l" L  {
  23. </script>
复制代码

& Z9 ^' v9 o- L+ c$ f
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
3 S  m, H' D. F
  1. <h1 v-show="ok">Hello!</h1>
复制代码

# z  r+ q: M7 V+ F% o5 r' M5 I* Z8 w* b" E! _' g$ i
. ]: ~! r$ l4 {3 O3 G$ Q
1 A9 G" j+ w, P, j( r) h- U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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