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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 10:52:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
条件判断v-if
条件判断使用 v-if 指令:
v-if 指令
在元素 和 template 中使用 v-if 指令:
  1. <div id="app">
    " f& k- S3 P3 b* C( g& p  U5 c
  2.     <p v-if="seen">现在你看到我了</p>8 [5 u2 o0 M% d& y% [+ e0 ]* j
  3.     <template v-if="ok">
    2 J1 P9 Q% Q( F9 q! c
  4.       <h1>菜鸟教程</h1>' |# e, X! V" C* j! o6 ?
  5.       <p>学的不仅是技术,更是梦想!</p>* }% W8 T: |- k' p% L  E
  6.       <p>哈哈哈,打字辛苦啊!!!</p>- a8 j, `: x! k
  7.     </template>4 N, S+ b6 n# q; N( R! n3 H9 k; C
  8. </div>0 v5 k6 Q7 t+ E' {0 W. R- ?5 H
  9.    
    " U9 n6 w6 N! d) {8 M
  10. <script>- f% t. i( r, C. A$ r/ X0 n+ g
  11. new Vue({
    9 h# Q, [; \. d* r: j
  12.   el: '#app',
    1 W+ @2 P9 U! I* R  n% @) k" ]: m
  13.   data: {
    " U8 n+ Q% t9 f7 G% p8 x% v9 }
  14.     seen: true,0 |; v( q2 c. D3 v! T' U, Q
  15.     ok: true
    7 ]9 e) K/ Z* j- m7 |8 k7 `+ r
  16.   }6 t4 p# X2 n' _& q! V
  17. })8 |- L* {  g7 b
  18. </script>
复制代码

' C' M% G3 H* _& C1 V& k
这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
在字符串模板中,如 Handlebars ,我们得像这样写一个条件块:
  1. <!-- Handlebars 模板 -->- ^6 x/ C$ _' t+ G8 c7 T
  2. {{#if ok}}8 c/ @9 S0 i# ?
  3.   <h1>Yes</h1>4 x0 h; U( V. C, j
  4. {{/if}}
复制代码
v-else
可以用 v-else 指令给 v-if 添加一个 "else" 块:
v-else 指令
随机生成一个数字,判断是否大于0.5,然后输出对应信息:
. d. `- L: V& D* A8 T1 K
  1. <div id="app">
    0 n* u. W. k# T$ H0 Q
  2.     <div v-if="Math.random() > 0.5">4 Q& ?1 c, ^" Y1 P$ |3 J% p$ K
  3.       Sorry
    5 |  @: E( V6 p$ O
  4.     </div>
    7 b% h0 |- h  t/ J. w
  5.     <div v-else>6 g; ]9 U7 B8 L. Y& F' ^) @. d
  6.       Not sorry- R5 d4 \7 }! L9 N6 {
  7.     </div>+ W7 J3 ?# v+ D# ]3 C9 ?+ f' a
  8. </div>$ P5 f( w; i" d4 O
  9.     1 R  K6 \5 {. {
  10. <script>0 n7 s3 u# d2 ?2 F/ }
  11. new Vue({
    $ `, ]7 |4 ]1 |$ A- y6 p
  12.   el: '#app'
    3 \, l; p; J6 D  k% {# k
  13. })+ c1 q+ U  g( D. U( _1 D8 K' Q
  14. </script>
复制代码
v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用作 v-if 的 else-if 块。可以链式的多次使用:
v-else 指令
判断 type 变量的值:

3 I. Z$ o8 ^2 m! b& L( z
  1. <div id="app">+ v4 |1 N; g% N, y7 s% E
  2.     <div v-if="type === 'A'">
    , t- O1 k6 y; \" W' w' U
  3.       A
    , G6 C' ~1 D! w4 y4 w. ]
  4.     </div>; [6 ~; `' n6 r( H: i3 r
  5.     <div v-else-if="type === 'B'">
    . R3 u+ \* M  f  [; H% M& P
  6.       B
    & T6 K& f3 R: {0 B9 O
  7.     </div>7 g. K& K3 A0 C. Q
  8.     <div v-else-if="type === 'C'">" T! ^# |/ n  _' `
  9.       C
    ! @6 t3 e, {# n. G* e2 N
  10.     </div>; X5 {! ]$ U" A! z9 C- I, t0 l5 a
  11.     <div v-else>, q) p- X. E& q8 t; [8 x: I: k
  12.       Not A/B/C4 a) Q* m  s  K/ ]" E! I
  13.     </div>4 S' b4 g& ^. I/ Q# l
  14. </div>1 ]* U9 a; O: z! y+ I& d
  15.    
    ; n8 R( R% t5 s7 Z; X$ V* B
  16. <script>
    8 l9 `! ]/ v# g% x9 R0 E8 J
  17. new Vue({
    . [3 @8 y( r# n% f4 x
  18.   el: '#app',2 [2 b2 Y5 u: U. s
  19.   data: {
    4 B6 X" B1 b! q
  20.     type: 'C'& g, ?$ Z9 E( o
  21.   }6 j3 D! Q, P1 w  F$ }* A
  22. })% q5 ?/ w- _- @1 G9 e
  23. </script>
复制代码
- M7 u* n7 J- T* x' i
v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
v-show 指令; q7 S6 f) V/ a+ B6 j: K
  1. <h1 v-show="ok">Hello!</h1>
复制代码
* @; d+ a! v% f+ I4 d; u* z  {

: b6 Z9 A. x( F# {) \% t
- D$ Q/ Q5 ~# `# i1 z2 c* j, F6 ]* P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 13:32 , Processed in 0.053144 second(s), 19 queries .

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