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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

$ p! A5 T  e8 D. @, `7 _
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例" e, Y( k% j. b+ M; z
4 ?$ o: F. w6 i/ ]1 a5 w: B
  1. <div id = "computed_props">
    6 v5 L1 O: e) Z4 r
  2.     千米 : <input type = "text" v-model = "kilometers">
    , q  x' d( A2 [
  3.     米 : <input type = "text" v-model = "meters">
    9 G  S. K) u5 M: o  V  g  Q
  4. </div>
    0 ?( a1 @# P- ^# e" o
  5. <p id="info"></p>
    ( s4 |! b' x+ a9 u6 v& F
  6. <script type = "text/javascript">( G6 F( c$ w# P2 D3 |+ ]3 ?2 \& l! X3 l
  7.     var vm = new Vue({
    1 s: h! C( i( l6 W! [9 J3 L$ n
  8.     el: '#computed_props',
    + P6 I2 [1 D$ m) d) C, E
  9.     data: {, X' j6 w' x% ^
  10.         kilometers : 0,
    ! s' K/ ^/ H+ @9 j: f/ _8 k& y
  11.         meters:0
    ! J. D& e; O: B1 S
  12.     },' \, \: z7 W  ~/ d0 S
  13.     methods: {
    % H, a$ k7 i/ Y+ Q% {1 D% B
  14.     },4 ?! B/ x) F# V8 X' N
  15.     computed :{
    , b  Q1 Z) _1 o/ b& }; J# S( I# L
  16.     },
    ! I: K( q7 L$ E& J) w
  17.     watch : {
    : z$ W/ B2 Q. K2 {  q; Q
  18.         kilometers:function(val) {* P- V7 f6 d5 ?. G
  19.             this.kilometers = val;- W3 K/ D; v$ _2 W3 N2 W
  20.             this.meters = val * 1000;
    - z: N6 h3 }5 W% J4 \. i6 Q* h- A
  21.         },% B/ D8 `/ l/ y; B
  22.         meters : function (val) {5 i6 g5 X/ _- Z# {
  23.             this.kilometers = val/ 1000;
    4 `9 q% Y; u2 p+ `2 v2 ~
  24.             this.meters = val;: V: A, R8 \. f
  25.         }
    8 c' \6 x3 x% r/ v+ y
  26.     }
    ; e6 d8 o* \4 [: P& A: u$ ?/ C
  27.     });
    : s$ e2 l3 ?8 C/ x3 C) r: t. ?0 t, y
  28.     // $watch 是一个实例方法, e8 R- f* G8 l2 C2 x7 e- J8 {  B$ q
  29.     vm.$watch('kilometers', function (newValue, oldValue) {& L) ?" T; X8 ^9 ^+ F
  30.     // 这个回调将在 vm.kilometers 改变后调用
    3 |) T2 }3 G, q! V4 Z
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;3 J5 @) _% ~) `3 M! j2 R( E/ S9 N8 k
  32. })) h, f4 j3 M+ B  r/ S
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
* _1 n- A7 l% u4 p; j7 }- n
; _9 H4 Y* W4 O' M! j$ @' _
1 {9 E  Q6 c$ e0 J
- M2 N9 F+ U: ~( b4 u8 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 21:45 , Processed in 0.116625 second(s), 22 queries .

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