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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 监听属性

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
, p. @( h8 Z! l, R+ m6 S
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
3 C  y& {4 ]# w# j) w( k( F  \" _; M0 c2 j
  1. <div id = "computed_props">
    / A$ J8 E4 }; k& Z2 q& w  \
  2.     千米 : <input type = "text" v-model = "kilometers">& E+ c' H- f# a! h9 _. F9 [( E
  3.     米 : <input type = "text" v-model = "meters">
    1 R0 F. F& @, j( S, f$ E
  4. </div>! w% q; A2 {) c( F; \) y( U
  5. <p id="info"></p>
    4 b4 Y7 r7 u0 Y% I- S+ Y
  6. <script type = "text/javascript">
    / o! i" W* g- z+ S
  7.     var vm = new Vue({$ U+ h9 w) `& |$ J$ s: x; ^) ]
  8.     el: '#computed_props',
    7 I$ L( X! e4 Q
  9.     data: {3 n' Z. V+ D! G0 Q- }' }% L
  10.         kilometers : 0,
    # i3 }& w' v! n
  11.         meters:0) ^) @" k; U. k' H8 U9 V
  12.     },
    . e- S' t! F" G9 t/ }8 N
  13.     methods: {- m7 L. `3 u* }- O- |% N
  14.     },
    6 U+ R0 c, d/ f" K' c
  15.     computed :{: r) }+ ]5 N* s7 E* S7 z+ e
  16.     },5 C2 n( O6 R( L" U
  17.     watch : {& G5 s& G' G7 H: C) I7 \
  18.         kilometers:function(val) {2 \' S: M) q1 \
  19.             this.kilometers = val;
    1 z2 e0 Q* z' n4 v* e6 i
  20.             this.meters = val * 1000;/ q" [5 ?2 N8 I7 X! u
  21.         },
    $ z/ M4 p) U1 n, j  Y7 ~* P
  22.         meters : function (val) {" j; n8 Q6 Y" T7 G! Y
  23.             this.kilometers = val/ 1000;; k4 Y! u' k0 m- |, M* m
  24.             this.meters = val;+ c% |  D( C: V& B# W
  25.         }
    : B/ n7 E9 C4 u7 A" `( N7 v
  26.     }
    1 N; _* f& Q/ n, j& G
  27.     });( W' u: X5 M3 j8 D% g+ d
  28.     // $watch 是一个实例方法
    $ v: f2 i) r$ D3 N* d& u! y- Y; n
  29.     vm.$watch('kilometers', function (newValue, oldValue) {! l: k9 r5 k9 w4 Z$ m& p
  30.     // 这个回调将在 vm.kilometers 改变后调用
    - o* K% T+ K) r9 }
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    4 r- J9 M9 A" P; j; w2 y
  32. })# _5 W% {* i- X( I0 s' d: O
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
: `7 K8 L3 z' ~) t! {' f6 _
2 F- h# r/ p8 b1 i

; C: }. ^) M& K# b. N1 O
$ p3 N6 y% K4 Z  R1 \9 K: B2 o  H( i8 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 05:39 , Processed in 0.050305 second(s), 21 queries .

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