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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
! z7 v4 W- G( |0 H7 V% n5 ?
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例: C( n' m# b4 m% F: z4 X4 q! Z
! D, N- c! ~3 D4 m
  1. <div id = "computed_props">5 ]) S0 J, P' F' J8 T- W3 f# m. k
  2.     千米 : <input type = "text" v-model = "kilometers">
    # R6 C  _9 [2 L1 O# Q
  3.     米 : <input type = "text" v-model = "meters">
    $ F- d' u7 C1 S9 }
  4. </div>
    ! n" I! ]  d: L
  5. <p id="info"></p>
    , V$ Z& i/ I% h6 @* N& ]
  6. <script type = "text/javascript">( {- D1 ?* G, N
  7.     var vm = new Vue({8 h8 O* D7 t1 q8 w
  8.     el: '#computed_props',9 L7 K% _* q5 o% C3 I
  9.     data: {
    ; o# ^% o; f0 v0 d9 O7 U. ~; G7 C
  10.         kilometers : 0,7 a# ^- A7 s3 O5 h$ o, S3 |7 f4 ^
  11.         meters:0: H$ l- h. }$ n* G
  12.     },
      B; K7 _! C$ x# I$ |
  13.     methods: {
    ( ~/ d3 A% g- [  I3 j
  14.     },
    + J6 r  W; \7 j4 b
  15.     computed :{
    ; @% d; O9 i0 o: q2 c
  16.     },2 Z% ]  a5 K4 G7 Y6 Y
  17.     watch : {+ `2 |0 m0 h6 m7 q6 I$ v
  18.         kilometers:function(val) {/ s& x" f1 U& B- u. s
  19.             this.kilometers = val;
    : d* n: e+ p2 b8 b6 D% @$ Q
  20.             this.meters = val * 1000;! s) g& u, C# C% y" F8 H( }
  21.         },3 @2 s: c2 v3 }3 ^5 U' B% V4 _
  22.         meters : function (val) {7 C7 v- v! m9 v# v- Z
  23.             this.kilometers = val/ 1000;
    8 B# o$ r# e) _" O& B3 y
  24.             this.meters = val;
    % {( x7 ]( I- p; `( l# a6 D
  25.         }, [8 X* _. {" {& w+ m
  26.     }
    $ U% p! u. Q# e' d4 Y% S% A: }1 o  a
  27.     });
    ! ^9 d, {! S" X
  28.     // $watch 是一个实例方法
    . k' A& o% l- c& o/ T7 c# N# g
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    ! j3 U& Z# l; r
  30.     // 这个回调将在 vm.kilometers 改变后调用7 z1 p8 x. e- c4 O# s
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;# Q; ]+ C' s+ X" v1 p* V
  32. })
    2 c0 ]1 z1 m8 ^) d; ?
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
1 q+ W, J9 T+ \' Z- Q

: c0 u3 H  J% y& t' m6 L
6 \  r0 |+ W. h) y. b4 _9 M- Z. {
+ {# E1 s, |! T% N4 |$ e. L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-15 10:44 , Processed in 0.133764 second(s), 20 queries .

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