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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

2 q" ]) N: I! I/ T5 f3 j
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例9 p- L. _' ]8 }: U

/ L. X3 N  |3 e9 j8 V
  1. <div id = "computed_props">
    5 ]: \( Y: K7 a& ], ~
  2.     千米 : <input type = "text" v-model = "kilometers">) ]1 c9 e- l' K
  3.     米 : <input type = "text" v-model = "meters">) W1 W3 J7 s1 L+ Q9 S- C+ \7 [
  4. </div>
    8 T$ s5 a* i: |
  5. <p id="info"></p>
    : A) {8 w: r. C6 N% ~; n
  6. <script type = "text/javascript">
    ; l: M7 _7 X8 N& g
  7.     var vm = new Vue({
    # O* m  ]4 D+ ~% [, f1 m
  8.     el: '#computed_props',
    7 F. ^, K2 b- m, z
  9.     data: {# \' e* h: L, o
  10.         kilometers : 0,
    ' m) n/ s! D5 d2 e. j$ ~" }
  11.         meters:0
    - q( ~; r  J5 g9 @3 ]; O" O$ Z6 v! k
  12.     },
    6 @$ j. Y% l+ d7 J1 g# b
  13.     methods: {; D8 _9 ?8 k# o0 {* b: o; |: R+ K
  14.     },3 ~/ F, Y# b5 {2 S
  15.     computed :{
    1 c2 T4 ^  D( n- O  T. w
  16.     },, _" A5 Y; b) V9 v9 t
  17.     watch : {* I5 ~/ Y7 f4 T$ }3 W; Q
  18.         kilometers:function(val) {
    - I$ ^2 Q1 n  u% Q
  19.             this.kilometers = val;* t) H4 M, r! D4 X" H
  20.             this.meters = val * 1000;: W0 r7 U$ \6 K; l( t! H7 r
  21.         },* b& k  _, t% i+ L, N+ i& h; V
  22.         meters : function (val) {
    / L- v( Z1 u" Y5 x
  23.             this.kilometers = val/ 1000;
    ) L7 \* f8 m6 x/ f" ?+ Q
  24.             this.meters = val;
    8 G: }1 C8 G# M5 m' T
  25.         }3 l5 x8 o0 H- H/ ]
  26.     }
    & m+ m  i" o3 ^! b/ a5 R
  27.     });) }+ c9 o$ g2 S5 R& l, Q
  28.     // $watch 是一个实例方法! C5 u: l& T* P! X" {
  29.     vm.$watch('kilometers', function (newValue, oldValue) {) A0 h% u( i; p5 e) w, L5 S5 d
  30.     // 这个回调将在 vm.kilometers 改变后调用
    7 U; _& v' V- o5 J, ]
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    ' _/ e8 _, t! [5 }
  32. })
    , E$ A6 j3 x3 z( W: Y: v) R' H
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

6 }* h! q3 Y) r8 [, y0 |( W
7 q4 N5 W. i6 q% I* q& S
% ~1 o: k  Y" X3 y* M8 V3 t% c& D) Y( N  y! o5 P( t" J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-19 22:42 , Processed in 0.054523 second(s), 19 queries .

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