cncml手绘网

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

作者: admin    时间: 2018-7-4 10:52
标题: Vue.js 条件与循环
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    : E! D% M0 n$ F+ H) H" y
  2.     <p v-if="seen">现在你看到我了</p>
    / V2 v. G) Y8 x6 U
  3.     <template v-if="ok">1 f! x& J# N  p* E! E( a
  4.       <h1>菜鸟教程</h1>8 H$ T- E( u( f& K9 j+ e, f5 B
  5.       <p>学的不仅是技术,更是梦想!</p>; E9 I3 G( s4 |* a4 L- ^. B
  6.       <p>哈哈哈,打字辛苦啊!!!</p>
    ( A0 }9 a+ r3 ]+ D% r3 Z
  7.     </template>
    9 k, A/ z& }# K
  8. </div>! r6 V) ^7 p; q: l
  9.     7 t7 i' W( q) L# p
  10. <script>
    ! t% U5 \6 ?! f2 G- O' X3 n1 \
  11. new Vue({/ Q9 [: w, a+ R* l
  12.   el: '#app',& n* z1 D- O1 [. K6 y/ w$ _
  13.   data: {
    6 g# i, x7 Q6 p% |. j8 a$ H( z
  14.     seen: true,) f2 Z3 B! J1 [' j
  15.     ok: true
    . r" W6 f. E0 r' ^$ B& j/ [" x
  16.   }
    + ~0 J. R9 X. x3 o' J" Z: h% b
  17. })- K, |9 E; \- c+ C" {( p5 g
  18. </script>
复制代码

; d6 a& ]( y7 D. [
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->
    . v2 Q) C* t: m( W( k( ?
  2. {{#if ok}}7 s7 I7 {% k5 ^
  3.   <h1>Yes</h1>
    $ T4 @8 S. H* X7 z) B8 K; J
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
. y. A* P$ J# {0 p1 c+ ]+ p4 a2 ^
  1. <div id="app">
    , F4 j. J. F6 h
  2.     <div v-if="Math.random() > 0.5">! ?. f9 r; I5 I/ N/ W" i
  3.       Sorry
    , l/ t: h9 Q# \5 ^
  4.     </div>
    % ]8 `; [# H* }0 ?9 C' \- ~3 z
  5.     <div v-else>
    ! q- ?9 E* E5 \# ?& T
  6.       Not sorry
    5 f1 n+ H7 d6 V8 R( g
  7.     </div>8 W6 \9 _: _  f2 |3 Z
  8. </div>9 ]$ k+ _. c2 ]
  9.    
    6 _9 ]; V& w! K+ b6 h
  10. <script>
    + M0 n" m$ u- Q+ u8 V8 U
  11. new Vue({( N5 s( M3 a4 I" D! F7 @4 m8 P  z* {
  12.   el: '#app'
    $ B; N$ l1 b3 v/ h2 E! @. b3 n1 S7 l
  13. })
    * d. a6 ~: a4 I0 r/ P  n- b# m
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

1 Z- P& o/ ]' @
  1. <div id="app">
    6 ]1 \0 V3 I4 K! \- H  ~, u) J2 B; O. L
  2.     <div v-if="type === 'A'">
    / T% d& @1 k, r- G1 Y- R. d
  3.       A, ?. w& H  R8 x# y4 {* U! {
  4.     </div>& f8 J- q& ~- Q8 J0 J: N  G- d
  5.     <div v-else-if="type === 'B'">4 Q  {; Y2 l# \+ t( X- B
  6.       B
    - y1 C9 c$ J/ J% j- b# \
  7.     </div>, K$ [- r- `" F7 k4 P& C6 o
  8.     <div v-else-if="type === 'C'">
    * ~- L& a5 Y/ V$ u/ N$ k
  9.       C! M% [, L: N2 L2 c# x
  10.     </div>5 S0 e1 M: p. n$ B) E
  11.     <div v-else>- A  q& p- P/ R6 k. T
  12.       Not A/B/C
    + G+ H/ y; B6 J! m
  13.     </div>. G2 w4 a/ Z6 @# e* `' d2 H% e
  14. </div>
    ) R" K  V! X% R, p
  15.    
    0 X2 W0 c; v  U
  16. <script>
    4 s) |( }4 f( C$ R+ l" R- k; z( ]
  17. new Vue({
    ! {: W$ C) T1 e: G/ B7 x
  18.   el: '#app',
    3 v: g! W& V' V  S
  19.   data: {" U# S* @$ W" E; O5 r; W5 F
  20.     type: 'C'- T, N/ B8 R" d2 i) p( S5 k+ q
  21.   }
    - Q3 T7 o  J( w4 c) C
  22. })3 t" }$ b2 G* f
  23. </script>
复制代码

! g$ W9 Z! |$ V- K# b, p
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令
: D: U: m! f# i6 i. g7 F
  1. <h1 v-show="ok">Hello!</h1>
复制代码
( j6 S1 q" g8 n% h
. T( @  l& }3 r6 W5 j8 ?

  W' C  Z, d, C1 S4 M3 y; z& I8 r' _& w9 Z; y, o* z3 z% b( t





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