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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

' y$ ]. @% k2 S6 v# K( p# ~1 q
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
* x  Z* I6 o7 t
  m% r0 c& K+ [" V
  1. <div id = "computed_props">0 `4 r6 n& v! O+ ?
  2.     千米 : <input type = "text" v-model = "kilometers"># F% J8 m) i% P2 \. ?
  3.     米 : <input type = "text" v-model = "meters">
    % V$ B' x: g1 ]' c
  4. </div>+ W1 A2 b3 k3 C: \8 x* _- j- z
  5. <p id="info"></p>5 J$ a5 l( a4 \) g! W3 H
  6. <script type = "text/javascript">
    : X- l4 T# A- T: C
  7.     var vm = new Vue({1 h; P: U  r2 s$ G' k4 j" \: I. s8 s
  8.     el: '#computed_props',
    7 J( G# r" M% p$ n4 G
  9.     data: {7 a% L8 p9 S4 t$ B) a
  10.         kilometers : 0,  N0 H" Y9 J& L7 l6 I( K& p# q8 a
  11.         meters:0
    / `! z- R" d. ^3 B
  12.     },
      ~' y9 E+ C# d/ q* Q9 R; v9 R
  13.     methods: {  B4 P" s+ T4 O; K
  14.     },3 C0 h( y4 ?7 V
  15.     computed :{$ b- Q5 J/ i- V$ N) `$ P
  16.     },
    , G) k: h5 V  t1 j; ]" _. u$ Z
  17.     watch : {& s; Q$ W0 R- N, Y6 c
  18.         kilometers:function(val) {4 g( A3 a, Q  u6 H7 {- M
  19.             this.kilometers = val;! H1 h* z. ^& }
  20.             this.meters = val * 1000;% r# P+ M% e5 T  _7 z
  21.         },
    6 o7 Q* u- J  H1 G; L, ]$ j$ n
  22.         meters : function (val) {5 r; l9 }! F5 K% B7 T, j
  23.             this.kilometers = val/ 1000;
    " [8 A/ G6 M+ o2 C/ ?. [
  24.             this.meters = val;/ y* K  v0 L7 p( j
  25.         }
    7 a( d4 J% j% V: l' t9 F4 D
  26.     }' }: M5 O0 p4 r1 i! ^+ e
  27.     });/ x0 f8 D& |/ w- Z' v: h- S
  28.     // $watch 是一个实例方法
    9 g6 _4 u1 M0 ~5 f6 B
  29.     vm.$watch('kilometers', function (newValue, oldValue) {( w# o6 f2 R6 h# T
  30.     // 这个回调将在 vm.kilometers 改变后调用1 f% g3 ?. ~7 K' E7 j# V) L
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;7 n2 D: ]) l5 b7 \
  32. }); J; {1 Z2 n. Z6 z: P9 I5 J3 L
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
; t# F+ g9 @. K

% E  l$ \( o  D' H0 F' u- K# L9 |8 q" R4 J0 V
9 j8 ~" s. P2 F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 21:49 , Processed in 0.061949 second(s), 20 queries .

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