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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
+ j7 e2 F0 W5 e1 o5 A( S
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例( @) X  K% a# T- S$ W
" m# J# i* Q/ ^9 `. U# A# C
  1. <div id = "computed_props"># z$ {) B  K0 e% s: A# ]3 q2 w- F
  2.     千米 : <input type = "text" v-model = "kilometers">
    3 I% x/ L* E6 t- T3 Q, {" Y
  3.     米 : <input type = "text" v-model = "meters">3 f; V, o4 G: ^3 ?; g. ?4 E+ f1 o
  4. </div>
    4 O) f# J8 k  A
  5. <p id="info"></p>
    0 m8 ^6 a5 N4 g' e% N7 n8 V
  6. <script type = "text/javascript">7 ]5 C' U8 y( E4 R$ f  ]* W
  7.     var vm = new Vue({; `# n6 `6 m) e6 a
  8.     el: '#computed_props',
    ! A, J" \9 m. k3 H  \9 `% c  h
  9.     data: {
    , P; x4 _/ a" l* \+ m2 G9 f
  10.         kilometers : 0,
    7 e/ |% Y4 z, \  w0 o
  11.         meters:0. i  C% e/ W* q; F
  12.     },
    + o- p# ~  K, u
  13.     methods: {
    $ C( S0 Y9 d% k! d2 x7 T* @, S
  14.     },$ J2 {' l) h% ~9 S8 U* K& b
  15.     computed :{
    5 w+ }' {7 S* N9 k8 c
  16.     },
    0 N8 e0 y; K2 h1 o7 _  y
  17.     watch : {0 I3 @3 k1 }; C* f% O
  18.         kilometers:function(val) {
    ; m0 D9 s; P6 q+ ^# U) Q8 n
  19.             this.kilometers = val;! t$ [- H% }/ H% [7 @9 \# \
  20.             this.meters = val * 1000;4 J7 T/ S* t/ G3 L
  21.         },
    . x5 C! Z4 l- c
  22.         meters : function (val) {6 Z0 {% o* }% `6 }- h9 [" O$ _7 K
  23.             this.kilometers = val/ 1000;& K+ O5 x/ ~7 H
  24.             this.meters = val;
    ; `) J" a/ f) \
  25.         }1 F) c. c4 B2 m! D8 v
  26.     }7 G9 l! I/ s9 P  P8 R) q$ b  T
  27.     });
      m* E" |3 K3 r( y8 @1 U
  28.     // $watch 是一个实例方法& u. R4 A9 A9 @( @% D
  29.     vm.$watch('kilometers', function (newValue, oldValue) {( N/ H# x2 b1 L% I# V6 V, y6 o/ O
  30.     // 这个回调将在 vm.kilometers 改变后调用! `* B  V& j7 a4 B6 }
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    % y8 _( `$ {9 q7 _
  32. }): `- s- q9 {+ b
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

' p; b* p  x8 M2 A; e: K' w
0 l6 C' Z" f; a" b4 {8 g
' Q5 \; F$ X, f; t/ V6 {
; G7 L. y' C( s3 e) E5 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 13:36 , Processed in 0.052718 second(s), 19 queries .

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