cncml手绘网

标题: Vue.js 监听属性 [打印本页]

作者: admin    时间: 2018-7-4 11:05
标题: Vue.js 监听属性

# k3 |3 v% k8 ^
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
5 b; ~4 y/ r0 G& h( D5 ^. }2 Q- z0 ^2 k1 a$ Q# X2 Q
  1. <div id = "computed_props">8 s9 Q( O' u% l9 s: @/ N& P' n
  2.     千米 : <input type = "text" v-model = "kilometers">
    5 E& ]2 H% Q- Z7 f5 e; [5 I/ M
  3.     米 : <input type = "text" v-model = "meters">7 ?' C: O, ?' }
  4. </div>: {' H- R$ B/ l
  5. <p id="info"></p>7 Z/ d$ w: e- }% v$ s
  6. <script type = "text/javascript">. E- l- O: K2 d. K" i
  7.     var vm = new Vue({7 P* i) ?1 ]/ B) j" ~" G1 P
  8.     el: '#computed_props',+ j8 ?" h# Y( s* Y4 X
  9.     data: {
    ! j- |* o7 m  h
  10.         kilometers : 0,
    % Y( z! E" p( L) Z# K3 b
  11.         meters:0
    2 j% }8 }5 Y' r' J
  12.     },: K1 ^# [) K) a0 C8 M& G
  13.     methods: {! e; J" g$ G4 t% m+ d; g
  14.     },4 @) b9 E0 X5 q$ Q& k
  15.     computed :{% g5 Y% ^- O9 m
  16.     },# w. x! U( {3 @  C/ b0 z
  17.     watch : {+ O: z; T4 f6 h0 [
  18.         kilometers:function(val) {8 H  ?7 U) W; o9 S
  19.             this.kilometers = val;- E9 u) e7 \# u% K
  20.             this.meters = val * 1000;
    1 R; R- u) ^* e( S
  21.         },
    : a2 ^" }2 t' |4 C- W. A
  22.         meters : function (val) {% |& U/ I  |1 d  W; F1 P
  23.             this.kilometers = val/ 1000;
    - s6 y% p. G. z
  24.             this.meters = val;/ M- y# o  j4 }/ |2 N
  25.         }: ~5 M7 z% n* ]# ]8 _% U
  26.     }
      r2 y/ k! {% s% {& W
  27.     });
    ) c0 o, Z' u1 z0 G( @
  28.     // $watch 是一个实例方法6 E+ U2 u( S  ^& t8 a) G
  29.     vm.$watch('kilometers', function (newValue, oldValue) {4 Y& g0 k* F# O) @7 X
  30.     // 这个回调将在 vm.kilometers 改变后调用
    " o3 Z# u# R5 e4 ~% o8 d
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    $ |5 [1 e( n8 O9 q  m7 F& @
  32. })
    0 z& v! s$ [1 U) ]! p0 f
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
; n6 M/ }) Q* o$ O( S- H

- o0 D5 }9 H" E$ @3 f1 N* N/ G
- F: g& J: ^" l  F3 U7 L4 t
; d9 B1 t; G2 c% K2 p* n; R2 `




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