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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    ' \; M2 M( Q9 x# f
  2.     <p v-if="seen">现在你看到我了</p>  n  M# a- w% ^  a0 _
  3.     <template v-if="ok">
    2 k/ a' k* H- \% Y% D# c/ [
  4.       <h1>菜鸟教程</h1>
    7 v2 h9 F9 {7 U: g( {$ J' n
  5.       <p>学的不仅是技术,更是梦想!</p>3 w4 g" Y  Q) \2 v* ~
  6.       <p>哈哈哈,打字辛苦啊!!!</p>! }; V4 r- L# h( I8 w0 \* ]& s, W+ I
  7.     </template>- V5 _. A  z/ a2 b
  8. </div>; {/ b; S" N9 k$ O8 P9 S
  9.     . A- e9 D  h- W$ w4 L/ L
  10. <script>' e9 n- |% o/ T5 ?4 B) k' B5 ]
  11. new Vue({- H$ M' q- G; @7 J4 S  G
  12.   el: '#app',
    ' ?- s+ [3 o# r( K$ f
  13.   data: {
    9 m. e: U. {' N' Q2 X  U7 I" G! P
  14.     seen: true,4 c8 E; v  f- Y5 F! b
  15.     ok: true
    1 d; K5 ^  g. C* k/ M& c- ]% o8 ~
  16.   }. q1 ?8 y0 P( M
  17. })
    6 d# h1 j9 \5 G6 x4 l" I& c
  18. </script>
复制代码

0 [9 \- ?! z5 j# y+ v& i
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    . q6 a& C. d, d+ a$ u9 x9 n8 k
  2. {{#if ok}}7 w$ H! D7 G. e
  3.   <h1>Yes</h1>6 C* Q' M9 a, S- T
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
0 N7 T; L/ b& p1 n( P
  1. <div id="app">( P2 F- j) V* O# t: O9 C) |3 m* W
  2.     <div v-if="Math.random() > 0.5">8 P7 f: G. d9 Y+ r! r
  3.       Sorry
    ( @- C" W( o; w! k& j5 f
  4.     </div>( j) y3 z* C$ V# x- ]
  5.     <div v-else>! }$ K3 w2 k2 i# K+ j- T. B3 @. x
  6.       Not sorry
    / D7 A4 [9 A5 q( F: h% j0 c
  7.     </div>
    8 ^5 y5 g% m( l, J
  8. </div>
    6 E! Q, y; Z# a" Q
  9.    
    . N" o- n; Y8 U6 Z
  10. <script>' c* @) `3 o$ S  v1 A) i( j  D
  11. new Vue({
    7 R, }& u& c3 r/ \4 x4 t% W7 \
  12.   el: '#app'
    4 ^. L! I6 }7 E( g6 M6 X, r
  13. })
    ! _' u6 A' u8 u2 S& Q  e
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

% @- c. i) W$ k4 G
  1. <div id="app">
    & `" j/ V8 M' d5 M
  2.     <div v-if="type === 'A'">
    # Y- O$ E* Q! w% A( Q5 o/ W1 i
  3.       A4 x" B! X4 |' y1 P4 q. G/ w
  4.     </div>& c6 Y  Z% Y% b4 b2 H- `
  5.     <div v-else-if="type === 'B'">  I% B/ s& ~/ A7 _& q
  6.       B! c+ U: {7 Z' d& x8 O' H
  7.     </div>: K; P1 j" ]3 F  |( ?% P
  8.     <div v-else-if="type === 'C'">
      \9 [9 V9 S) B8 x
  9.       C
    $ S7 D/ i6 ^( }! Y  k
  10.     </div>' f8 q6 Z) F+ K5 G4 n
  11.     <div v-else>
    ! G! b) T( A5 W" N. w& ~0 m
  12.       Not A/B/C
    7 L" t9 c: b. x5 s
  13.     </div>1 Z1 {+ \4 q/ r, I" v, q5 _9 l
  14. </div>5 x5 v" T0 q% Z$ V: u
  15.     # B  g% _& l0 f: x# o, C
  16. <script>( G$ f/ U4 y$ K3 j7 d$ z' Q
  17. new Vue({
    7 c3 n! G* ]; W7 N6 R
  18.   el: '#app',
    + Z2 }' t( V8 x- r3 G; Q# g  z4 v5 \
  19.   data: {
    3 k" Q! H$ s/ B1 s. \" F
  20.     type: 'C'" r0 z$ J' A9 ]8 m* u
  21.   }% d' t- o# R4 S, w
  22. })4 i% E3 Q: ]$ n+ w* @' x; z  Z
  23. </script>
复制代码
6 V+ [( [7 v4 H8 g  k# B+ C) s
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
) Q1 t5 B& y) \" ~: x$ n* e- }. y- f# C
  1. <h1 v-show="ok">Hello!</h1>
复制代码
( l9 }) G3 M% ?3 E7 @- A

3 d; o1 x. |, M1 W0 M
( w# n1 O6 z& m: P7 y- U* ~6 Y, k( g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 11:46 , Processed in 0.061854 second(s), 20 queries .

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