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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">  }0 ~2 t- l( Z9 O2 Q! W% {6 |2 [
  2.     <p v-if="seen">现在你看到我了</p>
    $ [. [5 t7 U! K. }
  3.     <template v-if="ok">+ K1 n( l# l- X5 \7 t; ]3 ]+ K9 P' _
  4.       <h1>菜鸟教程</h1>
    ) ]) {) J+ H; w! m. ?" c
  5.       <p>学的不仅是技术,更是梦想!</p>
    / v& g$ R& ?$ ?
  6.       <p>哈哈哈,打字辛苦啊!!!</p>; P& o9 N# C8 }
  7.     </template>) P, E* q0 ~8 P- I' @( a) P+ A
  8. </div>$ w; t7 U0 z1 [5 C7 ^2 r
  9.     ) I4 s% D) M$ U& d# O* s
  10. <script>
    3 c* ~" }, K' ^+ ?$ `
  11. new Vue({$ y3 G- l/ G3 U2 f
  12.   el: '#app',/ I% ?! i8 \7 Q6 j6 a0 b% Z% I
  13.   data: {/ o  Y" z5 G. e5 f1 o
  14.     seen: true,/ N& d; B& v7 a! {
  15.     ok: true
      g9 v7 w" K/ Q  b  v' G. g
  16.   }( }" i2 Z/ S+ n8 J: ]; h5 T( f
  17. })
      Y" h" |% M6 Z) {5 G, x8 W! g" d. y
  18. </script>
复制代码
! ^* Q2 o2 q  M& d( i5 l
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    & t, g) i# j8 I% Z- s
  2. {{#if ok}}
    % O0 g* ^) n9 T# T
  3.   <h1>Yes</h1>6 G$ O) C) j& T, @2 c$ d
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
5 n5 o3 N( M) t( w1 ~
  1. <div id="app">8 r' d2 [, P' M6 S6 x5 q) r/ O
  2.     <div v-if="Math.random() > 0.5"># I1 t* r( y; Y) k, a$ Z8 }+ x8 l
  3.       Sorry" j( n/ x, n# m
  4.     </div>6 c$ }9 s4 O8 Y" Q5 `
  5.     <div v-else>
    7 m9 B6 j2 Q* G1 V; V5 I
  6.       Not sorry  U, A) D# l- t
  7.     </div>
    8 A- z0 z# f3 ?( h' d0 j7 u# `
  8. </div>6 Y* a3 K# K' O5 Z$ N! i1 Z
  9.    
    6 o  B! V5 |  B) `. q' m2 z- D2 M
  10. <script>
    ( g- K  S" u- S$ a+ Q) m# z
  11. new Vue({
    3 o" x( ]$ H3 x# U
  12.   el: '#app'
    2 h+ g6 k9 r; l# j1 i9 m  t1 O) P9 p
  13. })* O8 `( K+ \# g3 K9 t
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
. e+ D# R* T3 |( N  \( z
  1. <div id="app">! K0 m# L. \8 x9 {" l5 u3 \- E
  2.     <div v-if="type === 'A'">
    9 E# q" M1 G  M+ i; k8 g
  3.       A
    + S3 A  Z9 F( o2 B+ P3 A# G
  4.     </div>  c# x+ r: z- n  R6 O, T
  5.     <div v-else-if="type === 'B'">
    ! y6 M. L5 U( j+ \
  6.       B  ]! Y4 I- O2 E4 v1 p6 P# f- s, h
  7.     </div>3 z5 h; }  A: J0 I5 P3 H; j2 I: r
  8.     <div v-else-if="type === 'C'">3 [4 _0 v6 L1 \. A" T# W
  9.       C
    + H% n" `, ?( j' c) K8 P$ ]9 @- p
  10.     </div># n9 l# x, Q; J* A* L/ ~
  11.     <div v-else>( Q- C6 A. _7 c8 h6 P
  12.       Not A/B/C
    , M% E/ _: j  b7 C
  13.     </div>1 s0 {$ W/ i$ a6 W0 ~
  14. </div>8 C( O9 e% S2 c& @
  15.    
      P1 i% c# _) G% O4 k- q* K0 }% @3 ^
  16. <script>7 F7 B8 ]* i* J5 N( g4 y1 [: ]+ m
  17. new Vue({
    ) x5 g  M. z- F0 `. I9 K2 y
  18.   el: '#app',: `0 h" r% e4 d0 A4 o
  19.   data: {( W3 i1 I, J; t0 e* r
  20.     type: 'C'
    ) M& u) V( O, X. g5 c" v3 o7 M
  21.   }
    8 ~1 Q/ T7 d/ {
  22. })
      q& A4 s) Y& N: k
  23. </script>
复制代码

6 [+ |9 A0 p& F/ l$ K8 D
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令- d' y5 i2 `, S) ]- U
  1. <h1 v-show="ok">Hello!</h1>
复制代码

  O% ]8 {/ @! Z  K  M! w5 O' W9 Q

& L# p5 q- B* s# t% N6 B2 t
2 a/ ~8 C3 ^' I" N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 08:14 , Processed in 0.062367 second(s), 20 queries .

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