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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    ( `2 n% t6 ^' X0 U
  2.     <p v-if="seen">现在你看到我了</p>$ {  H: N2 {  y1 A6 Z# X6 F
  3.     <template v-if="ok">
    ' J2 N1 h. \* x& o0 m
  4.       <h1>菜鸟教程</h1>2 r4 O' a4 ]* o8 S0 H
  5.       <p>学的不仅是技术,更是梦想!</p>
    - d5 P9 H5 u% E3 a5 ]
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    . Y5 L, P3 @1 O
  7.     </template>
    4 V5 X1 @0 {7 c7 ^) ?. [0 S
  8. </div>
    ) i# i" J4 R/ f% w+ r9 D! f
  9.    
    8 n6 B* j2 g1 S1 p
  10. <script>
    7 q* g" k2 {  j( c$ T! t6 _9 N4 c
  11. new Vue({& \  M1 p* A$ n8 h- n' a& X
  12.   el: '#app',; ?- g6 _  E/ T  K0 a$ k" \0 o
  13.   data: {
    9 l* c1 O2 B; H3 d, r
  14.     seen: true,4 B* P5 z  r9 Q9 ]' i9 P4 x( W
  15.     ok: true8 d, Q; v. C7 Q0 y; V
  16.   }3 f. C' X! i! \5 H
  17. })
    ! Q" ~  X% i# Z# Y+ F, [
  18. </script>
复制代码
; h8 @: k; o4 M& v" S
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->5 J; m1 m7 J1 W6 ^/ d; T! D% h
  2. {{#if ok}}
    # T8 W1 a- s. C1 [* a% x
  3.   <h1>Yes</h1>
    ( D& Q6 Q# z8 x4 {5 ?+ X
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
" m. Y. V. w5 E0 a
  1. <div id="app">
    ; z# X. y& j2 u. T3 Z
  2.     <div v-if="Math.random() > 0.5">
    , G1 P1 |. w6 Y7 b7 u7 b# B# D
  3.       Sorry
    ; n# L1 i, Q8 h! V" T" y
  4.     </div>5 ]0 Q! v! X: ]& L0 {; a  U( ?* R
  5.     <div v-else>7 R4 d; w; E/ K7 I
  6.       Not sorry' x! Q2 o/ L* \5 e. ?
  7.     </div>2 B4 r- _# ^/ T: {- T/ G3 K
  8. </div>
    7 i; F5 G7 P" N  N( A
  9.    
    : P2 S% R8 p4 t+ w5 V' z
  10. <script>
    # m1 {9 C2 P. m
  11. new Vue({2 H: [# a- ^  n9 K* F
  12.   el: '#app'  |2 f1 x1 |& B" M- A
  13. })
    ( |  X/ F" F2 l' R& C' X0 |- y4 E$ V
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

& J/ j# y' R, s; B
  1. <div id="app">1 t, S, p9 o2 H. t0 y( ]
  2.     <div v-if="type === 'A'">
    * ~5 Z5 T5 G6 N; [1 l
  3.       A  v7 `5 e8 y- e0 Q
  4.     </div>
    4 P) o) M. o7 S+ i2 d  O+ ]5 y
  5.     <div v-else-if="type === 'B'">
    4 I/ S6 P. |9 `6 s& K! t
  6.       B; \: {# s! F+ e
  7.     </div>
    ( Y9 n( S1 u8 Y8 N! e- t- y
  8.     <div v-else-if="type === 'C'">
    ) g4 r# C0 L) A7 Z* \. `
  9.       C! k( i* o6 n* S. v
  10.     </div>; P$ U, `- e8 o# ?3 P% [9 [. g
  11.     <div v-else>; k1 Z$ k4 b9 F
  12.       Not A/B/C' o6 L! ~* q- Z' ]8 r3 t9 X! w" ]% n
  13.     </div>7 V$ k& @9 u+ ~5 F0 L
  14. </div>, K$ t4 }4 k) m4 J
  15.       q1 \3 d& K6 l7 Z: o# _
  16. <script>
    6 p- J- W$ U  e2 L4 p& [
  17. new Vue({  E: a- X# i1 a/ Q
  18.   el: '#app',6 H$ p# E$ P  m8 p
  19.   data: {
    + j9 u0 ^, q& b' s2 v3 N" C3 J
  20.     type: 'C'' ~4 |: D# I0 M2 p* I: S% i% b
  21.   }
    % ?0 l/ z) p% B
  22. })& o' k" L6 L# H' T6 j
  23. </script>
复制代码
* ^  W, N) o. g, k8 N0 A/ [
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令$ n7 `/ g9 I  ~3 Q0 u7 C6 M5 B5 }
  1. <h1 v-show="ok">Hello!</h1>
复制代码
+ T  H1 S  h8 r/ ^* B
1 @" O2 p0 f& X. [% f' h. I

* b# N  s) \5 `3 K) r# v" A9 m2 F" g' M/ I0 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-22 10:54 , Processed in 0.061224 second(s), 20 queries .

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