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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
& u+ A3 b2 b4 f
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例2 Q, d$ \2 u8 D- G, N& I6 o

! k$ ~' m$ c9 x, U( N$ y
  1. <div id = "computed_props">. n" V$ s4 k; g% g9 _9 v7 e
  2.     千米 : <input type = "text" v-model = "kilometers">' M* q! h" u+ X7 I7 V4 Q$ z7 K  e
  3.     米 : <input type = "text" v-model = "meters">
    / V* j7 h$ @- J. J
  4. </div>6 m( n, h; x* d0 J% x2 e2 U
  5. <p id="info"></p># o+ o8 O: y* ?5 Q
  6. <script type = "text/javascript">7 x6 V5 U& T2 C: }: \
  7.     var vm = new Vue({2 [! j6 s: J/ ]4 z' Q
  8.     el: '#computed_props',
    ; R. H2 ]4 m! I0 I) t3 X" u% N: V
  9.     data: {
    0 d7 d, }; P* m, C  S. ]
  10.         kilometers : 0,/ F9 }. K( Y) H
  11.         meters:0
    $ z/ L2 K! x5 n8 z$ I
  12.     },0 }: {- B3 N- B& `. F/ m  ?
  13.     methods: {
    1 k; j- ]1 u' x/ v# z
  14.     },4 C9 ^& r- }/ l# B2 e
  15.     computed :{, B3 L% r$ z( s+ Y. y# M; X9 }5 E
  16.     },
    4 I2 L- E9 t$ H0 n2 x! r
  17.     watch : {9 P4 e. p5 W: Y' S8 ^  B& v6 k
  18.         kilometers:function(val) {: \3 p; v1 ?  L9 I, f
  19.             this.kilometers = val;
    ( C/ @9 i, M9 r
  20.             this.meters = val * 1000;: _) l( D; c7 H, A: S% _
  21.         },
    . o& s# u& h, R) C7 p
  22.         meters : function (val) {  v7 N4 I* I# o  o( h; R6 _
  23.             this.kilometers = val/ 1000;
    9 r  Q1 U7 ~& c: d
  24.             this.meters = val;7 t7 p: ?: H* b" I5 B4 j, q
  25.         }: F& m; a0 E: k/ p4 K# J  ~8 O
  26.     }- l- f3 l$ W' g
  27.     });
    " q. b' c* a( \3 r  f: K6 ~/ r
  28.     // $watch 是一个实例方法
    . c8 j+ p2 R0 R2 I$ d
  29.     vm.$watch('kilometers', function (newValue, oldValue) {5 _0 C/ Y4 y1 r
  30.     // 这个回调将在 vm.kilometers 改变后调用! m4 j( P/ V8 Y" ^) `/ I' m' E
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;/ V$ U1 l6 X. y  l& ^! u% I
  32. })$ K9 `6 w$ W2 M/ l/ l/ d
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
' q, Y' G& D9 ^* r9 s% h( V; x7 L

8 c, K  U# T6 K
# `; v. Z! O  w9 a. d! S2 {" n- f: G9 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:46 , Processed in 0.129101 second(s), 19 queries .

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