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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 L4 h* E9 k: m! }9 B5 ]  J* g& `: T
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例9 h. j) s1 |& c/ `8 y% w

  J, E7 [4 b% Q  M; w0 L5 b6 W
  1. <div id = "computed_props">
    2 `9 N  [$ t3 b7 M. o
  2.     千米 : <input type = "text" v-model = "kilometers">
      H; c1 P, p6 B7 ~8 D% H
  3.     米 : <input type = "text" v-model = "meters">4 W8 K. O6 v! d8 K# r4 g
  4. </div>
    / r+ |9 i$ F( D1 k/ z
  5. <p id="info"></p>
    ) n# X4 s1 a* b! E8 ]# u
  6. <script type = "text/javascript">
    ( X3 `, R* P/ ]
  7.     var vm = new Vue({5 ^+ F' |; z0 E% U
  8.     el: '#computed_props',. o' `( Q3 I, D
  9.     data: {% ?4 i" b0 A4 G
  10.         kilometers : 0,2 ^' v$ J5 L/ p- j7 y, s
  11.         meters:0
    6 |8 Z2 X3 Z8 p) p# n0 C
  12.     },
    , q* |7 @& S/ ?! }6 D5 I6 l
  13.     methods: {
    * q( @; Y( L  T
  14.     },1 Q; }# ^7 h: R
  15.     computed :{
    0 u0 [. R3 M. ^: [; Y
  16.     },
    ' |. Y$ \- q: v
  17.     watch : {
    ( {4 F8 [$ d+ V/ E6 _6 ?0 E- n
  18.         kilometers:function(val) {4 z# t' H- e) D7 ^. c, m
  19.             this.kilometers = val;
    + l, `4 P, |) T  J1 t, z7 U" {. `( m
  20.             this.meters = val * 1000;
    * ^7 m0 K& O/ f/ o
  21.         },
    1 C; c  R" E/ w( v$ x1 |' h
  22.         meters : function (val) {
    $ K) l0 [) ^! s  U( o& f- ~
  23.             this.kilometers = val/ 1000;4 o9 ]0 p" b" P8 X9 C- o+ _
  24.             this.meters = val;8 X/ k6 p' x) g. O; U% P4 D
  25.         }
    9 J* ~- c4 n; u0 q3 p
  26.     }  g7 V  A/ q$ U, i" G
  27.     });
    " y6 E' V& v" v; r# |% [
  28.     // $watch 是一个实例方法% \) h% V7 _% v0 |
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    ) ]& ~' b# W( ^" W+ d5 q2 o7 l
  30.     // 这个回调将在 vm.kilometers 改变后调用
    9 l, G. s# S  d/ a8 h, y
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;: y9 p6 d, T! [
  32. })
    # _6 P5 ~/ g1 o' n: D3 v7 W) E
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

, J3 Z/ C% V: g3 I* b! l2 Z' Q
, t# ~+ `3 r( y+ ^! c% e6 O0 O* Y/ \( l, L8 ]2 E
6 H+ w# J& s9 {& L: y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 23:14 , Processed in 0.129595 second(s), 21 queries .

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