您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14605|回复: 0
打印 上一主题 下一主题

[Vue.js] Vue.js 监听属性

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3 A5 ?0 O7 c4 ?- \$ @# d# v  Y
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
: f0 H+ y4 X$ c0 {5 t- Y/ B5 Q' k8 T) P" B( ^1 E) G% E6 g
  1. <div id = "computed_props">% n9 [" x* E6 B* B. ~5 g0 g
  2.     千米 : <input type = "text" v-model = "kilometers">
      r2 c, G! I* _! t2 Y9 B2 v
  3.     米 : <input type = "text" v-model = "meters">
    * k, ^* W- p7 v
  4. </div>
    % y/ P7 }& B1 c4 v# L, b" O' Z
  5. <p id="info"></p>4 s( |' v, Y2 Z+ y' e9 o% S0 R  G
  6. <script type = "text/javascript">$ y1 L1 F! z! t
  7.     var vm = new Vue({+ j5 }; w) b1 s/ q% B/ ]) T: }
  8.     el: '#computed_props',8 g: _& Y" N) X! P8 f  t( ^
  9.     data: {- V! C8 p/ A& R) f6 @  z/ O
  10.         kilometers : 0," i* Z* s. h  e
  11.         meters:0# _3 f4 n  T* ~
  12.     },
    * F9 y( S2 h4 ]- o1 f. b
  13.     methods: {
    / Z6 b: `# ]6 y6 T4 p9 E' L$ M
  14.     },
    3 P. W) c! M+ \/ G% a# ?6 B  d
  15.     computed :{0 d" Z* R' K+ k4 B( X' f5 n6 G
  16.     },0 T5 `/ y: k+ G2 C
  17.     watch : {, C+ t& [9 ]1 Y: U/ L
  18.         kilometers:function(val) {1 i' U, ?$ O" U6 C! C
  19.             this.kilometers = val;
    7 c+ m9 d6 m; O: v* U) V1 X: n/ l- `, K
  20.             this.meters = val * 1000;
    + Z7 z2 ~. A" N2 o
  21.         },
    7 i0 T, K: I; h: I3 p
  22.         meters : function (val) {4 p+ B  m; ~# Q* F/ [3 n
  23.             this.kilometers = val/ 1000;( \/ C3 h7 R8 `4 @9 h. e& u, Z
  24.             this.meters = val;
    , d- z* B2 M3 y7 F. A8 J
  25.         }
    & S" M8 q+ K$ R0 A6 N
  26.     }
    * W8 p$ B5 W6 F* n* }
  27.     });
    * _; y. P; i: G6 [. L
  28.     // $watch 是一个实例方法! N3 R1 l; p, B, q- A) A
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    6 v, y2 P1 g7 p
  30.     // 这个回调将在 vm.kilometers 改变后调用
    1 Q8 U" J9 d/ I! H2 S' B/ `
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    * R  }+ q- D2 i& |
  32. })
    & u. {/ q0 q5 b$ F; O" A
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

# l/ L$ u! b+ l, B5 B5 L/ P# n: D1 [% J; S  I0 T0 \" p$ J
! x+ g$ i' Y4 V0 B0 R9 t+ s

. O8 b2 ~# t5 N# k' G1 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 18:25 , Processed in 0.049408 second(s), 20 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!