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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

8 e& `1 V- w; D- |2 ]" t
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例6 q% ~0 V: J7 A$ I; _0 x, M6 ]2 H
& k( k! P3 ?8 ^
  1. <div id = "computed_props">; M: I" q5 r3 S; t# z8 @3 _. S) X
  2.     千米 : <input type = "text" v-model = "kilometers">
    ! t- S5 Q8 a. I+ G: D
  3.     米 : <input type = "text" v-model = "meters">& ?9 w( I. i( z8 f
  4. </div>
    3 E$ C% t, X/ p7 \  a0 N/ M
  5. <p id="info"></p>
    " g+ I; b: F  t. |0 J$ |# Z
  6. <script type = "text/javascript">( T) K4 o. }7 a( f: \4 F/ q
  7.     var vm = new Vue({
    7 v8 V0 A2 e5 ?6 f+ ~4 \
  8.     el: '#computed_props',: F# C; ]$ U4 q0 U  ?# v3 {! y
  9.     data: {. |/ w2 C# A* C7 k
  10.         kilometers : 0,/ z5 O. d0 n1 `1 j) u- V
  11.         meters:0' Q6 L* H8 n4 p+ L1 u- C
  12.     },2 y& r0 a* [# o- B: g3 N, }3 F
  13.     methods: {) s7 g$ Z- g+ C( _( k! f; C
  14.     },
    # P; E) G1 n* y  I
  15.     computed :{- ~6 u" r5 m# `
  16.     },6 L  p3 E! @% G/ W$ R0 C1 p
  17.     watch : {$ d8 k3 @. @8 }* J0 c
  18.         kilometers:function(val) {
    7 a* U/ [9 f: E9 W$ f
  19.             this.kilometers = val;5 z9 j" |/ R& c
  20.             this.meters = val * 1000;
    5 m1 U2 n0 P: n4 l8 B: d
  21.         },
    - X) [$ A; t. T- [3 e% _% n
  22.         meters : function (val) {! y6 e3 I% l1 C' X
  23.             this.kilometers = val/ 1000;
    ! {& ?# a0 Q  {  |! b; A- e/ Z; _
  24.             this.meters = val;
      J7 I4 \9 v9 n% x1 U
  25.         }
    % \8 [, ^. l3 Z/ b! @3 @+ \) V
  26.     }7 |- j6 a$ ^* I+ ?
  27.     });
    . p/ m9 |. I1 p2 C7 i9 K
  28.     // $watch 是一个实例方法
    ) L# G9 ^5 r) ]3 E
  29.     vm.$watch('kilometers', function (newValue, oldValue) {  r' P  O0 [! w! @
  30.     // 这个回调将在 vm.kilometers 改变后调用: k' O  ?8 r# ?. y& ?1 n' l
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    ! S4 p' [3 [9 e! Q( W9 b8 z  e
  32. })4 c- |# ?2 F/ J; i0 W
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
( Y% O8 x* K; b
( T" c, y, ~. J4 y8 J' C6 ^, e! K
- h$ @2 U( V3 ]. V& [% ?
- |, Y6 Z: Z2 u+ k2 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 04:17 , Processed in 0.054944 second(s), 20 queries .

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