cncml手绘网

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

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

' x- E( q& `( W1 G) ~# J" H5 K
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
! M% ^/ A# U# x3 G8 n  D
: q% [/ B7 {- `
  1. <div id = "computed_props">
    9 ~) ?9 ^2 `0 f6 S
  2.     千米 : <input type = "text" v-model = "kilometers">
    ' b4 n/ t0 ^/ i! S. Z* W- c
  3.     米 : <input type = "text" v-model = "meters">/ ?7 |7 `% Q# j/ _: `) I
  4. </div>8 k, i$ r1 c% t5 Y1 a+ S
  5. <p id="info"></p>
    4 I! g6 f3 N0 z6 ^5 R. @
  6. <script type = "text/javascript">
    $ P' m0 T. @' d, k2 J' l
  7.     var vm = new Vue({. M( r& |, v. v" @; J. m8 d. B& J
  8.     el: '#computed_props',
    7 c, V9 `! N2 g. c) ^# `0 l0 y
  9.     data: {3 @  e6 ]# k5 U8 Q, L
  10.         kilometers : 0,& F% }% k. y: ^/ p- ?/ ?( z9 O# c: u1 t
  11.         meters:0
    ) _( r2 m8 r& ~  `
  12.     },
    5 `7 j( D  X' e' z1 `
  13.     methods: {- H/ z; e) n7 _: D- y
  14.     },
    1 F5 j+ F) U# C( [3 W7 N0 c
  15.     computed :{( i. P% \2 q' Q# h. K' v
  16.     },
    6 V0 v$ r. e. W' x* d; }, `8 N% g
  17.     watch : {
    , t, y, d/ G8 L
  18.         kilometers:function(val) {! l4 g: U! f. K2 L" @3 x
  19.             this.kilometers = val;
    ; c1 g  b9 R1 ], W" Q" B9 M
  20.             this.meters = val * 1000;
    1 {$ d2 `6 X' S- y' s* I
  21.         },
    , J; a$ I7 s( g! {
  22.         meters : function (val) {9 p' v: T5 Z  V. I7 _) a
  23.             this.kilometers = val/ 1000;/ X  A. B6 o8 I$ s9 K
  24.             this.meters = val;
    9 t8 H8 R/ ]$ ]+ p
  25.         }
    0 H  L6 P- C, p$ i
  26.     }. B( h( x- ?0 W# g
  27.     });
    / C, X! ?' m: ~4 R, R
  28.     // $watch 是一个实例方法
    0 H6 L: h, r) |4 W6 r
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    % h: Q0 _, b. G$ r
  30.     // 这个回调将在 vm.kilometers 改变后调用% D6 b7 {4 ^& b) _4 `5 Z7 D
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    & }0 b9 k6 n: o; E
  32. })
    4 ^* c+ v9 [* Q8 w+ A; \
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

2 y% f0 K$ q2 o' u0 j' H4 V, I# i4 |2 p- ^! e
/ H6 {2 T6 q. W  H/ Y) n# J

/ e. p: j, y$ a1 G




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