cncml手绘网

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

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

+ X; V* o3 n& r: k% f) z
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例5 D. T, G9 v0 i- N$ f5 M
' X8 n* x1 o  ~. _+ o% i6 f7 |
  1. <div id = "computed_props">& ~' \3 H! B4 e5 s6 f( d3 b
  2.     千米 : <input type = "text" v-model = "kilometers">5 M5 b! u% J  V. O- K' T$ T
  3.     米 : <input type = "text" v-model = "meters"># Q. C4 R$ s' Z% }
  4. </div>7 ?" y" m0 w( ^4 ^9 c
  5. <p id="info"></p>, K, B( `4 }" L# y/ [
  6. <script type = "text/javascript">. Q1 n! Z7 {# c2 z
  7.     var vm = new Vue({
    , q# _  D  Y6 M3 t+ E
  8.     el: '#computed_props',) |7 r4 \+ q' a0 a
  9.     data: {
    , [# ?+ e" h- c! m6 A) p
  10.         kilometers : 0,& R- l3 a! C8 D- K3 A7 a1 p
  11.         meters:0* s# g7 Z& T, g4 b* `# f
  12.     },) \1 b+ C# E- b
  13.     methods: {. c2 b) y: K# _; Q
  14.     },
    1 v0 V6 w% [3 p: q5 E: F$ ~
  15.     computed :{6 b) x( s( s7 d" ?! Y5 U
  16.     },
    4 G+ q& R- ^. L. u+ B: B
  17.     watch : {
    + h% w  I+ Z  O. n+ R3 s
  18.         kilometers:function(val) {3 n; R: A! [/ G' w- J
  19.             this.kilometers = val;
    $ q! V# N, r( l# j1 Q+ k2 M
  20.             this.meters = val * 1000;, ^" Q$ u; ~* f
  21.         },* `. m5 h5 w3 a
  22.         meters : function (val) {
    : {1 O% i# w' {9 l0 v
  23.             this.kilometers = val/ 1000;1 N1 d: V8 N- J! [$ u( e& R  j
  24.             this.meters = val;+ m4 E; N' t# T
  25.         }
    : x+ F! G$ W6 P) T& ?) b
  26.     }) u. a) n+ P1 W$ p1 d( r/ g+ H2 \
  27.     });
    : }3 L! H5 v% D9 t( H& P5 w1 r
  28.     // $watch 是一个实例方法  T2 U& G9 z; t/ k7 b: j
  29.     vm.$watch('kilometers', function (newValue, oldValue) {# {3 T% ~( V8 `5 {5 H# ~; \
  30.     // 这个回调将在 vm.kilometers 改变后调用
    & ~; d0 p9 N2 e2 p
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    ' m3 ~/ l  R! k& J! J
  32. })& _  C7 x0 M& s4 C- d6 h6 r, U
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

2 T& ^+ l- [, g6 a9 T( |' \- a$ G9 L( X  [/ ~  i/ U& }$ M- m

) `4 V4 ?( P6 a" i0 u1 J1 S9 S
; G1 V3 ^! W; F( v9 @- `' q/ r




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