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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
- h& W5 D6 G: r- a
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例6 f, S4 j) r5 P; V

# ]  U2 D4 V) H# G/ U9 c0 p( `+ r
  1. <div id = "computed_props">" E) ?! u# b4 V5 \; Y
  2.     千米 : <input type = "text" v-model = "kilometers">
    $ l7 q  c! @# p  b( O6 N
  3.     米 : <input type = "text" v-model = "meters">8 m0 o& N& \1 Y8 q; C+ r  `( w
  4. </div>0 t7 B+ U6 E7 @! `
  5. <p id="info"></p>2 M0 q. X6 X% y3 w5 L
  6. <script type = "text/javascript">  h: c5 D4 M& H, ~& z& f+ v+ T: g
  7.     var vm = new Vue({
    % O3 E9 d/ R- H) M6 ?9 f$ k
  8.     el: '#computed_props',- K! Y5 K8 @8 l' o
  9.     data: {
    7 q9 d$ p1 j7 B$ g9 S
  10.         kilometers : 0,
    / [1 m: s0 F, [+ K
  11.         meters:0
    ! o6 x: ]# k' d) T7 J( |
  12.     },
    ) ^3 P+ c0 s4 e" S: K
  13.     methods: {1 f: N/ x3 `; B# j3 k  S; V& m& w
  14.     },1 R# c: R1 t, X. N8 ~
  15.     computed :{
      [7 E( z% v8 k  Y+ C- R5 ]
  16.     },8 f: ?: z' l2 ~& m: o: I8 h
  17.     watch : {. c/ T' f  _4 c5 e3 Y: ~
  18.         kilometers:function(val) {& b# g! K+ n' t' G% y% F
  19.             this.kilometers = val;
    0 n4 U) A$ I7 i- N! r$ ^
  20.             this.meters = val * 1000;% q, y$ v5 z; f6 S
  21.         },, w; @' u: U  F- y! D( N
  22.         meters : function (val) {- M0 H' |" k! O3 O- {: L
  23.             this.kilometers = val/ 1000;
    4 f% C  G8 L/ V9 Y& b1 v" N
  24.             this.meters = val;
    3 t; K# a2 l, Y* k6 w. w
  25.         }" t! {! M7 o! v6 _
  26.     }4 H/ V  L& o9 Q  g# F( T3 U
  27.     });; K$ p) d% w' q4 E
  28.     // $watch 是一个实例方法0 v5 e* @4 |5 j: X& J
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
      M  _  W3 Q' P1 N
  30.     // 这个回调将在 vm.kilometers 改变后调用
    3 m  N4 R( V$ D1 w" z5 p: q0 g& l
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    1 {- @( n7 U: ?: K! H% E9 v5 t
  32. })5 a2 y5 Z$ E$ w* {8 d
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
: a) m9 G1 @0 q  @- V! s
6 C, y' J5 q# }
$ Q" k3 X1 z! ]8 ^- b  y) t
3 V; I/ L8 N3 x4 f2 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:45 , Processed in 0.081854 second(s), 20 queries .

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