cncml手绘网

标题: Vue.js 条件与循环 [打印本页]

作者: admin    时间: 2018-7-4 10:52
标题: Vue.js 条件与循环
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">/ z7 u% ~9 D5 H8 D7 o
  2.     <p v-if="seen">现在你看到我了</p>
    + x! \/ N* _" E* ?
  3.     <template v-if="ok">! o+ I& Y  e0 g
  4.       <h1>菜鸟教程</h1>
    * k' `! E7 q* v# M" l4 O; H
  5.       <p>学的不仅是技术,更是梦想!</p>: ~$ Y' e9 |! D9 N: _( m' d* V
  6.       <p>哈哈哈,打字辛苦啊!!!</p>/ n5 b  n3 W! r4 V1 C
  7.     </template>
    6 T" i# u' A, v& b/ M
  8. </div>
    5 n1 k+ ?0 F* B9 M7 V$ `
  9.    
    . L$ J9 M7 n4 M. F
  10. <script>
    3 s6 h/ ~4 V3 T" B* d
  11. new Vue({
    # Y5 y% s; l5 W- {
  12.   el: '#app',
    ' c1 O# Z2 f+ l8 C; V  ^
  13.   data: {
    , e0 d' b3 F$ e
  14.     seen: true,
    $ _$ E' t% r# ~0 W
  15.     ok: true
    ; R1 ?/ \5 U* ]( D2 M
  16.   }
    1 l9 M5 V2 Q! @; r+ G
  17. })* v- g, y9 I$ i+ ^+ [4 I
  18. </script>
复制代码

: X5 t* J& `# t  X, A
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    ; f$ R9 i8 n$ G, v0 B( Z9 x) m
  2. {{#if ok}}
    + X3 m3 A% ]% r
  3.   <h1>Yes</h1>
    % M) m) F/ i+ J, ^- r
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:

1 V6 r" u& F4 W, [3 h# [0 G
  1. <div id="app">
    7 J  Q4 r4 X: a. r
  2.     <div v-if="Math.random() > 0.5">2 w2 z9 Y- D' T7 d4 N
  3.       Sorry
    % N+ f# s% P) \+ ~; R2 l
  4.     </div>! |- z9 ]4 V# B: O6 i7 ?
  5.     <div v-else>" B2 u  m! I0 s2 o. {
  6.       Not sorry* B1 [+ I3 _; `( M8 X
  7.     </div>
    - r" J/ J# r  g$ j& v1 p1 H
  8. </div>5 W4 H9 M: C4 F7 Q* L
  9.    
    & [( o$ W) n; X5 B6 k$ P/ Z
  10. <script>
    * p9 s) U- J: {: l, K7 ]
  11. new Vue({
    / K6 Z" p# W* B) p' v* l4 k1 ?
  12.   el: '#app'" h! d* i9 N: G( [7 H
  13. })( _3 E# T' y* i; J3 z4 t
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:
! k! P' I' h9 m! C, U7 T% T0 a6 \  L
  1. <div id="app">& e2 g0 |+ N: M
  2.     <div v-if="type === 'A'">' G: w0 B, A! ]: b  @# q/ o
  3.       A
      R# j0 ], ]4 u6 W' ]) X5 Q
  4.     </div>
    5 w* K7 z: b! t# W* C& M4 ?- b
  5.     <div v-else-if="type === 'B'">& z. Y& n8 |8 J2 X' F3 Z: A& ?6 m
  6.       B. Y( F, J" x* t, V
  7.     </div>8 a# J  Z% L4 _! o8 ]4 @
  8.     <div v-else-if="type === 'C'">
    ' T2 f; U5 u3 D' N
  9.       C3 j# H8 e4 X5 ?
  10.     </div>
    ( y" j4 H2 d2 n# S% H6 O$ ]1 c
  11.     <div v-else>
    * ^. i# |( I' @( M
  12.       Not A/B/C
    : Z# x8 \9 J+ h3 L
  13.     </div>
    0 ?5 |0 E( a# ]. g2 Z) f
  14. </div>& R6 P% l: |3 K. E+ {
  15.     + f/ V7 g: P$ k; }' o3 \; Q/ c! p
  16. <script>/ I8 D+ ^6 B. G+ @
  17. new Vue({! v9 d! }' U# [- J* h1 e2 H
  18.   el: '#app',7 g8 K0 m9 ~. |" d8 z3 y6 S
  19.   data: {
    # W+ C8 h( ~/ |" u+ ?' l# I( ?  R
  20.     type: 'C'
    , B; J! A" K! q3 {
  21.   }
    9 \1 Q, e0 `+ `! G# F4 R
  22. })5 W! [: I* F' ^+ `% Z, }4 H4 R
  23. </script>
复制代码

4 r4 h6 h0 c' M9 |9 v
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
+ q+ X1 c- O7 b1 `6 g
  1. <h1 v-show="ok">Hello!</h1>
复制代码
) m' k, v- M; z. \- I8 d5 V
5 C# l, y' ~+ p3 K! P

, j/ h! K2 k7 x+ g* F6 x6 O& v2 ^





欢迎光临 cncml手绘网 (http://www.cncml.com/) Powered by Discuz! X3.2