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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
" S( Q! y7 k" n4 _
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例! H% M: {  f1 {' T5 p# s

9 p. l1 J% q6 ?1 Y; T. f7 ~
  1. <div id = "computed_props"># h& Q0 q2 D9 I* w" ^% K* T9 w
  2.     千米 : <input type = "text" v-model = "kilometers">( f6 s4 ^7 L( P
  3.     米 : <input type = "text" v-model = "meters">
    7 B* g; L2 g- @! F7 j6 L% l
  4. </div>7 A4 ~' A) u7 C# m3 }
  5. <p id="info"></p>/ o5 [* f( w0 F' l$ b
  6. <script type = "text/javascript">% [7 B' o" x- ^+ U: @
  7.     var vm = new Vue({
    . J# Z" D  q. f3 D% j9 t6 v: ^) i
  8.     el: '#computed_props',
    4 G7 K7 ]9 B) D  J! k
  9.     data: {
    7 m$ k1 [1 r( u( z' X3 ]8 k
  10.         kilometers : 0,
      d1 F  v6 s8 C" Y" X
  11.         meters:0
    7 e+ f2 v) _8 b+ p7 R' X
  12.     },
    / E6 _# ]- N" a
  13.     methods: {/ h0 b7 s/ G( i9 Z
  14.     },
    ; \( p2 ]. P$ F5 I
  15.     computed :{
    $ Q  W, R/ g0 D* @0 F* h
  16.     },
    2 H. [$ @0 j5 q+ j5 p+ d; A) B
  17.     watch : {7 I8 A7 u7 i5 I. v7 t) z
  18.         kilometers:function(val) {
    % m$ h" F* a3 k; B* K
  19.             this.kilometers = val;
    - T8 Y# h, h, J3 _! D2 c
  20.             this.meters = val * 1000;
    6 w1 N, r+ {& }7 w
  21.         },
    0 m9 E" E" \- ?! c) N0 J. z
  22.         meters : function (val) {1 h5 J2 V! T2 b5 M6 m' {% ?- }
  23.             this.kilometers = val/ 1000;% o7 P2 D' `  Z! N5 s$ e
  24.             this.meters = val;! w2 m1 @& i) I. t
  25.         }# N/ O: P9 ~) K* g
  26.     }" b* u) ]1 |. h3 ^
  27.     });( b' l1 M# W, H  R5 k* j* O
  28.     // $watch 是一个实例方法$ z. i1 I6 F+ Z5 Q
  29.     vm.$watch('kilometers', function (newValue, oldValue) {7 q' O6 h  p3 u$ h( n) e
  30.     // 这个回调将在 vm.kilometers 改变后调用
    5 G3 C( C, q0 F0 ^  h
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;- h6 t$ O  w! \# |3 x& _$ Z9 T
  32. }); l2 c8 Y8 H6 R( _& r, ?
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

3 B/ Y$ e) y, N  ~7 L! m2 x/ X# B+ _# U8 |9 r) T: U

- i! @, R( r4 X- ^9 e" x/ _9 |; t2 Q* T3 j4 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-7-20 00:32 , Processed in 0.061229 second(s), 20 queries .

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