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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 y+ s  @) }6 y, a1 }) I
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
/ _+ ?  r) H1 @1 e5 d8 X# w5 e
7 k- o9 i& N7 L9 s& p1 R; n9 a
  1. <div id = "computed_props">
    ! o. Q  b1 j, Y" [5 G
  2.     千米 : <input type = "text" v-model = "kilometers">( ~5 I% \6 @' y  k5 c' u
  3.     米 : <input type = "text" v-model = "meters">
    % \$ d- {" N6 Y  N" f0 _  O
  4. </div>
    - r! j) Y' Z$ j  `7 G6 o
  5. <p id="info"></p>
    * G1 d( ~) [! Y
  6. <script type = "text/javascript">" u" L- Y; n6 v* ?4 @: J8 l2 z3 }
  7.     var vm = new Vue({
    . ]( u1 X/ U) K5 Y& L5 @
  8.     el: '#computed_props',! \# p: L" p- K; i
  9.     data: {
    - r2 P: Y+ V4 m
  10.         kilometers : 0,
    ; q9 Y  c& ]" e
  11.         meters:0
    + |# a: }9 W$ k) i+ O
  12.     },
    5 G( v6 L, e6 p  Z/ S: o& ]  X* U5 y
  13.     methods: {6 j8 s& w) n' P  l$ ^6 T
  14.     },
    7 y" W3 N: {/ C2 Z
  15.     computed :{2 [9 ]! e/ w) f4 M9 {) g2 D
  16.     },2 p; t  K% k0 `; x$ s
  17.     watch : {
    - r0 o& Y- k. H; M/ h. T2 r  z
  18.         kilometers:function(val) {; x1 _, p4 j3 _* _% X5 e0 I
  19.             this.kilometers = val;
    * M# W; _# Q! j& H: j4 O
  20.             this.meters = val * 1000;
    1 }2 D! h+ M: z4 x6 R/ N5 a
  21.         },
    ! q, `6 H0 m& ^
  22.         meters : function (val) {
    ) U2 u) C) [/ a* y
  23.             this.kilometers = val/ 1000;
    ; F( _* ^+ Y( U: R
  24.             this.meters = val;
    ' ^7 r# Q1 `* i
  25.         }0 d  @4 }( h* R+ ?, c  W- Z
  26.     }
    6 {- M& x3 k. \) O' ~5 c
  27.     });
    + ?8 x7 p$ D6 e- L4 T9 y
  28.     // $watch 是一个实例方法
    & l3 @# K' _3 I( S
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    ( A+ ?' O' s# f
  30.     // 这个回调将在 vm.kilometers 改变后调用: D* A6 a0 |% v/ J, [! ]  I  @
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    ) D) Y# S7 T6 N8 ?) Z" U: O9 \
  32. })
      L$ d$ I- ^/ X: j5 o
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
" R5 B1 `" t% L4 P. e# y3 u

' x% L/ ^& M, G2 W  A: v; n
& o- {% O% D0 `  Q/ E( c) y$ }5 b- m* Q+ \3 E9 x' g( m1 f% ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-4-29 10:04 , Processed in 0.118032 second(s), 19 queries .

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