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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2 |. ]4 f+ N/ d# q
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例9 _2 Q/ I* b, d

0 J0 \4 W9 \' F1 @
  1. <div id = "computed_props">. W4 I4 k, Q( x4 {
  2.     千米 : <input type = "text" v-model = "kilometers">8 c& H9 A% P( o9 y' ~6 x. j& ]
  3.     米 : <input type = "text" v-model = "meters">* r8 P8 H! ~- B* h) e; Q
  4. </div>; j% z+ _% u2 ?) u) w; Z
  5. <p id="info"></p>
    3 }$ _/ m: m/ j
  6. <script type = "text/javascript">- \: ?. \7 |- r1 b; s! D8 S
  7.     var vm = new Vue({7 t. r. ?, X: ?( x% N2 o! K
  8.     el: '#computed_props',5 e4 ^2 g6 y3 i7 E- N
  9.     data: {
    0 u& b0 y. V0 X1 _
  10.         kilometers : 0,% B( r0 ?  U& w! P1 [% `
  11.         meters:0
    " }' v) D0 _9 U
  12.     },& s( |% L- e. V$ ~, ^' n
  13.     methods: {. B# {+ e- ]2 G: g
  14.     }," t) c2 i% K* o0 x; V
  15.     computed :{4 t" z+ \, x! V' ]3 r
  16.     },
    + E: k8 v* @8 v) I" @: J" Y9 |
  17.     watch : {
    + e3 o6 z, F3 H4 {: N# v
  18.         kilometers:function(val) {
    . Z' p+ b$ o, ], _. G
  19.             this.kilometers = val;7 K* H2 h2 ^7 C& x2 z5 M* @1 f7 E
  20.             this.meters = val * 1000;
    : m. \2 k8 ]& ]3 x% B
  21.         },
    ; }" y/ v" r. L+ W
  22.         meters : function (val) {
    ' Z8 Z( p- q, j4 L
  23.             this.kilometers = val/ 1000;
    9 r) U8 o" D7 A$ u1 a; F( o6 b" b; ]
  24.             this.meters = val;
    2 i. Q* v3 e- K( u$ ^: Z
  25.         }
    ; c: u. q7 S0 e7 v( i3 a" \
  26.     }
    . S8 p" e% c- u: H& e
  27.     });; K. Z$ A" d; I0 x3 x
  28.     // $watch 是一个实例方法
    ; C& m, X+ W7 y7 R
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    9 @8 G3 d$ q- M8 k. K* L
  30.     // 这个回调将在 vm.kilometers 改变后调用- z* H* f- Q& y
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    1 J- C/ S9 v0 ], y: E2 Z0 k, Q
  32. })1 y; t* N" x, n# f
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

3 [2 u/ `+ J! T8 u& v7 Y
6 D" e3 K( t* h6 p
0 W7 g: M+ Y7 x" F8 w# v3 E
, K8 l7 @5 H4 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-5 01:12 , Processed in 0.056459 second(s), 19 queries .

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