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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13988|回复: 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. [) k" h0 z, c  E5 Q9 S
  2.     <p v-if="seen">现在你看到我了</p>9 f% u6 p" U5 u/ Y
  3.     <template v-if="ok">
    4 ]3 ~8 a2 |2 V% D: v  d* h
  4.       <h1>菜鸟教程</h1>, d6 B+ ?6 }& F) v; A$ I8 ~
  5.       <p>学的不仅是技术,更是梦想!</p>5 W/ W9 ~: r' D( O1 P
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    # D$ M+ I# ^) J# E
  7.     </template>) T+ b$ V" n! w: L6 }% @' N! ?
  8. </div>/ w) V& ]5 x: C1 r7 ?2 `
  9.    
    $ c# c$ {" z  g) N8 ^! v5 l6 W8 B5 R
  10. <script>- Y, P* w% f1 {0 g* t/ y5 `
  11. new Vue({
    ' t1 q- q+ o+ Z$ T% |
  12.   el: '#app',
    , t$ ?- R: F* E( |6 X8 a' Z
  13.   data: {
    0 b" \- i$ K6 S; T7 b/ G2 Q8 Y
  14.     seen: true,6 p$ I9 c  ?/ \; H- _) k- {8 z
  15.     ok: true
    8 y- B2 _0 q5 x$ b  I. m, x( d
  16.   }. o/ v2 y# t1 ^" T7 x0 M
  17. })
    / c/ X+ p8 {" Q/ q6 c$ B1 }
  18. </script>
复制代码

8 ]1 h) k/ ?( [& v
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    ) j: z1 ^* D( t4 h1 @
  2. {{#if ok}}" r; A" ?- M2 y) E
  3.   <h1>Yes</h1>7 |3 G  J+ o7 M8 }
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
2 b. Y, ~% K  ?4 ^; y% i4 y
  1. <div id="app">
    6 B1 _: F* w% P; b* l! J: v
  2.     <div v-if="Math.random() > 0.5">
    0 m8 l6 {( l# W8 e% i7 Y$ w5 |4 I
  3.       Sorry2 B, a2 ^3 ?3 E: Z0 t0 c% u
  4.     </div>8 @2 b! p. [/ B7 B  e1 h9 g
  5.     <div v-else>; {  O  n' H, e& ?1 Q' d- s
  6.       Not sorry
    $ {" r: U' \6 \+ Q" I% m# X9 ]8 L
  7.     </div>/ B7 w7 O8 L" n9 [- {
  8. </div>0 J! P5 e/ I( {( R
  9.       ~/ e* T# V; c6 Y, K! p9 B
  10. <script>
    3 t+ t! D9 v- z* @/ V% \5 M6 e9 r
  11. new Vue({
    5 @5 }, J4 @2 C! J1 x
  12.   el: '#app'- A% a5 L, J" x, o9 [0 o* K" u. i1 t  g
  13. }). R" p8 `5 }. ~7 H. n9 T
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
6 D0 o" L% o6 h2 u& q
  1. <div id="app">8 b, ~1 _# Z3 x
  2.     <div v-if="type === 'A'">* E% f9 b- R- h5 b- f* |
  3.       A8 \- o9 D3 I5 s7 y3 w4 G
  4.     </div>
    2 S2 Z  {" g: X7 D
  5.     <div v-else-if="type === 'B'">
    : {- T; y* n& ]5 n  x
  6.       B& w+ e* L# Y7 ~2 G5 J, n9 ^
  7.     </div>
    ( z; L$ Z# o' j
  8.     <div v-else-if="type === 'C'">" K) a* T/ f" G' q* s: C# S' C
  9.       C
    , X  e8 e1 R% M
  10.     </div>6 |& O; g5 R7 C; M0 o+ p9 H' I; _- b! P
  11.     <div v-else>2 P7 R, [- ^3 ]& a1 m' x: j
  12.       Not A/B/C
    9 G% A2 a4 {" l4 {* P
  13.     </div>- Q9 `1 @0 H- m2 m
  14. </div>
    ' o* _# r0 E* ~0 ?& `) l8 M5 s
  15.    
    " V; }3 b8 L% b/ c5 {
  16. <script>
    8 a$ E1 U! S; i/ S/ K2 E' x; J
  17. new Vue({
    & D- R! l8 g4 \, }. S
  18.   el: '#app',
    1 L9 C, @; f( U$ R* V/ y
  19.   data: {
    5 V, E% q* m0 {7 I
  20.     type: 'C'# ^$ K# X: }/ X
  21.   }! _# |8 f$ g0 l. b$ H' ?& a
  22. })
    7 k' K+ r. l4 j( R
  23. </script>
复制代码

4 u- d" |$ T) T" _* N
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
' L: A" P0 p  {0 Z
  1. <h1 v-show="ok">Hello!</h1>
复制代码

, p2 L7 ^! s, }& R, E2 D( j' U! n3 Z& G4 y2 f
% M: A. T0 u4 \4 y3 n% ?) o5 d+ v& _
! u9 k4 K! \- b, b0 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 14:33 , Processed in 0.073994 second(s), 20 queries .

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