cncml手绘网

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

作者: admin    时间: 2018-7-4 11:05
标题: Vue.js 监听属性
- ~6 f! D% \0 c# T% _
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
1 }+ n- @, t$ e7 o4 |! Q& b1 D
  1. <div id = "computed_props">
    8 Z5 G* W0 U9 h( I
  2.     千米 : <input type = "text" v-model = "kilometers">) L/ D0 z3 A0 Z4 S* z4 h* d% ~
  3.     米 : <input type = "text" v-model = "meters">
    % ^0 A0 `2 \7 E4 G& @: P
  4. </div>
    ; L! J2 g: X  z+ G$ ]9 e7 ~9 p
  5. <p id="info"></p>
    * o( {0 r% b( ^/ _6 X( k. v
  6. <script type = "text/javascript">
    4 \% j, i. x  a; L6 p) U& o1 w; _
  7.     var vm = new Vue({5 y; d* v$ _8 G$ R
  8.     el: '#computed_props',
    ! {9 ^. \/ ^$ b, J
  9.     data: {
    9 S# B4 s# @8 U# Z5 {: }+ [
  10.         kilometers : 0,, {# u5 L7 u4 ~" }5 c) ~$ u
  11.         meters:0  K- ]! K' N% [
  12.     },
    0 L$ w$ N4 H. {
  13.     methods: {
    , Z+ G; U5 {9 t6 r
  14.     },: ~+ K" W, S6 h7 E; r/ J
  15.     computed :{
    6 K) e0 a+ c5 F
  16.     },
    ! I5 `- D5 N6 j) Z8 f6 b! ?( V$ s
  17.     watch : {
    : U, K' C3 E* n' {9 W7 V3 l5 n3 C
  18.         kilometers:function(val) {7 T, P5 Q9 f' A
  19.             this.kilometers = val;2 q2 `! Z+ U( K7 p5 M3 l9 Y; n4 y
  20.             this.meters = val * 1000;
    6 z- w  w9 L* N# d" H
  21.         },
    , z: G( H4 P+ j
  22.         meters : function (val) {
    1 i0 ?* {; L0 ~0 t
  23.             this.kilometers = val/ 1000;
    , b6 V+ y+ M8 V! H  ], I1 @
  24.             this.meters = val;* i+ P, Q4 l/ z3 t/ p7 X( Q
  25.         }
    2 w9 a- `: ^: Z! }1 f* I, z
  26.     }
    5 k$ |! ~+ X! {2 z
  27.     });; [- P  s  `/ h4 q' C
  28.     // $watch 是一个实例方法; |7 D4 _7 b' `1 h6 t" k
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    & c  U  x3 f4 r( R& F
  30.     // 这个回调将在 vm.kilometers 改变后调用
    " w  Z3 \, Z8 e. a& O- p, a' y
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    / S; s, a9 y% ~7 x7 j0 X  c# X7 b
  32. }); _' Z" j4 U  E, \1 V2 G
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
- _5 l2 x) u$ D9 J

5 L* M- \$ S% y5 s
) H# K8 s! A1 m& P4 Y$ Y! A. p, {% f; @* F





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