cncml手绘网

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

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

8 I$ S. H  b" _
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
/ C# X, p9 K6 ~. c! }* u" G% ]6 \2 @; W- E% K$ e9 M
  1. <div id = "computed_props">
      B4 S4 p+ @+ T; \+ w
  2.     千米 : <input type = "text" v-model = "kilometers">
    8 s- c# f+ n+ J0 f0 F
  3.     米 : <input type = "text" v-model = "meters">
    " \: |! S( C$ }- i& w
  4. </div>
    5 i7 V+ ~) e2 J+ ^6 Q! T7 \# {! t
  5. <p id="info"></p>+ O( p" e4 g* y& X/ ^+ W5 H7 N8 F
  6. <script type = "text/javascript">
    ; f, Z7 {; P5 j
  7.     var vm = new Vue({
    ' C3 P) K  s! f7 v; D/ o0 ~5 }
  8.     el: '#computed_props',
    / ~! J( m. m* z. A5 V+ ^
  9.     data: {9 p3 N2 R3 y) V3 b
  10.         kilometers : 0,
    ( J" G; Q$ H/ x2 K
  11.         meters:0
      _& t* ]& t) s4 g6 w' g  J  k$ i  J
  12.     },6 a1 Q% m) ^0 o8 Y
  13.     methods: {
    ' I! T8 {& ?" P
  14.     },
    9 I/ V0 R) p: p) Y& S( v4 N
  15.     computed :{* \; G% f0 R0 o, W+ G
  16.     },
    $ _. T6 d0 W* T: D+ y
  17.     watch : {
      ^$ Y1 p2 a+ [8 Y
  18.         kilometers:function(val) {
    7 [2 t8 ~) A4 H9 z1 g5 b! n
  19.             this.kilometers = val;# ^$ a3 u$ ]! L( }3 _
  20.             this.meters = val * 1000;
    + m: u. y  ?& z; M
  21.         },
    ! x% M6 ]; L' v1 O
  22.         meters : function (val) {+ y( C+ ^/ w9 b: o" _
  23.             this.kilometers = val/ 1000;
    1 r' i# f3 I" ~8 L# J
  24.             this.meters = val;$ q: D! u) ~9 Z) P
  25.         }1 {+ m' q- I- q# d+ ]
  26.     }
    8 U( F- ^1 M; t* u) q- I
  27.     });
    ; p% b4 K: l8 H5 J" m! F
  28.     // $watch 是一个实例方法7 I) D! P4 I4 l2 t* u5 \
  29.     vm.$watch('kilometers', function (newValue, oldValue) {& I+ w. V5 T# l1 o3 O* J
  30.     // 这个回调将在 vm.kilometers 改变后调用
    : G) Z! d* p3 n, ], @/ D7 L
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    ( ]* l9 y* O7 V, g2 _, q
  32. })
    4 y" o9 r* }, o! Q% C3 f
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
& d2 F+ i# X9 u: p: j4 Q
7 b4 s0 d' }4 E) u
; w, D# [( ^& O+ o! e( k) n
$ J* M( Z1 ?8 W; Y, p1 x





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