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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

+ ?; c5 W7 h% {% F* p4 o8 Z9 l8 ?
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
" a2 u0 k1 o+ M- p
+ `  E8 N/ ?3 ^, G" b
  1. <div id = "computed_props">
    , F( r& x0 w0 P& ^- T
  2.     千米 : <input type = "text" v-model = "kilometers">. t4 ~! s1 E" o' P
  3.     米 : <input type = "text" v-model = "meters">! x" x9 t, w* A; j: r( C
  4. </div>  W. ~; r* b& p7 I- X
  5. <p id="info"></p>
    ; k& T! g4 ^: e: V* M8 z
  6. <script type = "text/javascript">) l2 s$ i) J' j' ]
  7.     var vm = new Vue({
    ) ]2 m' q$ F2 D# k" F  j' D
  8.     el: '#computed_props',; r! T$ e* }+ t! ?" e
  9.     data: {# Z4 s7 E  j( W
  10.         kilometers : 0,
    % L1 e* n4 I& _, e* _% F
  11.         meters:0
    ! h* N5 N3 E6 |
  12.     },9 {# W6 V1 z. D) f8 l3 t1 G! g
  13.     methods: {
    / Y+ k" W5 O7 D  ]" l
  14.     },
    - Q+ B" C+ }; q9 M9 b6 E
  15.     computed :{
    " n  S( S6 ]# L& V
  16.     },
    ) g- L+ L8 p0 X/ s) q
  17.     watch : {) p4 O: G) s2 W/ P
  18.         kilometers:function(val) {
    / ?: o" t' ]( z/ ^% e
  19.             this.kilometers = val;2 W9 V2 o5 V8 h) s" z
  20.             this.meters = val * 1000;
    . B' ?  R* A0 b
  21.         }," m) X5 b6 f% o9 Z8 c
  22.         meters : function (val) {
    # w3 J" w5 c9 ~1 w
  23.             this.kilometers = val/ 1000;8 s7 R% r( `; C- m# h+ c7 `+ V
  24.             this.meters = val;
      C( i" v* d+ o/ r+ `7 |4 e
  25.         }
    + \/ q# [( n( ^2 D
  26.     }& I8 c. J( P  m; Z- p0 a
  27.     });
    . E* N  o3 e$ H1 A$ r
  28.     // $watch 是一个实例方法1 [5 ]8 @( i4 D
  29.     vm.$watch('kilometers', function (newValue, oldValue) {% Z8 M3 z* `% L4 ]
  30.     // 这个回调将在 vm.kilometers 改变后调用% r( C; \7 r  d
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;# I/ J! N! V( I3 p: Z- R/ @; g
  32. })! s" r$ ?$ D; g5 s
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
" X/ U6 R+ A/ B) ?! y- C- s) x5 H6 ?

2 a% R: D1 t& I6 M& b. U8 f( t1 k9 ?; E. {; u$ M5 N3 X

) _4 }, j2 c! G+ [4 K, E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 17:30 , Processed in 0.141821 second(s), 20 queries .

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