8 e& `1 V- w; D- |2 ]" t本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化: 实例6 q% ~0 V: J7 A$ I; _0 x, M6 ]2 H
& k( k! P3 ?8 ^
- <div id = "computed_props">; M: I" q5 r3 S; t# z8 @3 _. S) X
- 千米 : <input type = "text" v-model = "kilometers">
! t- S5 Q8 a. I+ G: D - 米 : <input type = "text" v-model = "meters">& ?9 w( I. i( z8 f
- </div>
3 E$ C% t, X/ p7 \ a0 N/ M - <p id="info"></p>
" g+ I; b: F t. |0 J$ |# Z - <script type = "text/javascript">( T) K4 o. }7 a( f: \4 F/ q
- var vm = new Vue({
7 v8 V0 A2 e5 ?6 f+ ~4 \ - el: '#computed_props',: F# C; ]$ U4 q0 U ?# v3 {! y
- data: {. |/ w2 C# A* C7 k
- kilometers : 0,/ z5 O. d0 n1 `1 j) u- V
- meters:0' Q6 L* H8 n4 p+ L1 u- C
- },2 y& r0 a* [# o- B: g3 N, }3 F
- methods: {) s7 g$ Z- g+ C( _( k! f; C
- },
# P; E) G1 n* y I - computed :{- ~6 u" r5 m# `
- },6 L p3 E! @% G/ W$ R0 C1 p
- watch : {$ d8 k3 @. @8 }* J0 c
- kilometers:function(val) {
7 a* U/ [9 f: E9 W$ f - this.kilometers = val;5 z9 j" |/ R& c
- this.meters = val * 1000;
5 m1 U2 n0 P: n4 l8 B: d - },
- X) [$ A; t. T- [3 e% _% n - meters : function (val) {! y6 e3 I% l1 C' X
- this.kilometers = val/ 1000;
! {& ?# a0 Q { |! b; A- e/ Z; _ - this.meters = val;
J7 I4 \9 v9 n% x1 U - }
% \8 [, ^. l3 Z/ b! @3 @+ \) V - }7 |- j6 a$ ^* I+ ?
- });
. p/ m9 |. I1 p2 C7 i9 K - // $watch 是一个实例方法
) L# G9 ^5 r) ]3 E - vm.$watch('kilometers', function (newValue, oldValue) { r' P O0 [! w! @
- // 这个回调将在 vm.kilometers 改变后调用: k' O ?8 r# ?. y& ?1 n' l
- document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
! S4 p' [3 [9 e! Q( W9 b8 z e - })4 c- |# ?2 F/ J; i0 W
- </script>
复制代码以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。 当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。 ( Y% O8 x* K; b
( T" c, y, ~. J4 y8 J' C6 ^, e! K
- h$ @2 U( V3 ]. V& [% ?
- |, Y6 Z: Z2 u+ k2 S
|