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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/ p) d7 W% P8 b" R0 {
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例6 n5 a2 _% C& t

2 |0 M% b8 w) d. g* L: E( h
  1. <div id = "computed_props">
      |/ V- U4 l$ w2 W2 V
  2.     千米 : <input type = "text" v-model = "kilometers">( F' Q, F3 D& T7 a' M
  3.     米 : <input type = "text" v-model = "meters">
    6 J1 D& ], I! _/ g3 M
  4. </div>
    ' j* O- H$ n2 X' _8 Z. a; |$ ?. r5 M
  5. <p id="info"></p>6 `- X) W( a2 c0 Z' x& s( O: L
  6. <script type = "text/javascript">! }: \8 n/ o% a7 c2 B( k7 z
  7.     var vm = new Vue({
    ; l! Y9 B& x+ R
  8.     el: '#computed_props',
    : i" T- s3 z. h7 V- ?" C: \
  9.     data: {
    . \. [) d* R: ?; [6 q3 v
  10.         kilometers : 0,6 V8 |0 Q8 `# ^& I( @$ i( n
  11.         meters:0
    3 Z7 ^( `, ?' h3 T1 z# T- V* K
  12.     },
    3 _* A: I. Y3 u& N
  13.     methods: {2 ?1 d8 i3 M" l% \% f9 w! L( y7 L- T4 W
  14.     },
    8 B( H( [! L$ S9 u' b  X2 X
  15.     computed :{
    6 T0 M& ]' m9 J3 y  ]& T1 U9 F
  16.     },2 P/ A8 h' n* m
  17.     watch : {
    $ \' U6 S; G1 R  y, D
  18.         kilometers:function(val) {3 E: }6 S9 A/ j6 R; P
  19.             this.kilometers = val;  P0 E3 f0 V5 e6 N* p1 y, A% ]: `# T
  20.             this.meters = val * 1000;0 [- ~) x- w3 K9 E+ p0 r
  21.         },
    , ]" Q. z# C+ `. N
  22.         meters : function (val) {, o- \$ C' T) e3 f
  23.             this.kilometers = val/ 1000;! a/ L( R" b* z! F- S7 u% U& @
  24.             this.meters = val;$ S) Z" Z: p, ^  {
  25.         }( e9 v7 o. R# P
  26.     }. _4 ^: @0 i$ x0 j
  27.     });$ ]* I- m* s6 q$ A
  28.     // $watch 是一个实例方法  l* V. E9 M& {0 ^6 B, F2 t7 g
  29.     vm.$watch('kilometers', function (newValue, oldValue) {; l5 c" |4 x$ C- R9 q0 m( I
  30.     // 这个回调将在 vm.kilometers 改变后调用, c7 [% R" |# d
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;9 W+ `; @! A* M+ w! s1 w; ]
  32. })2 S$ }* A* u. N$ l
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
6 |9 v7 L) Q% w' P% h/ j2 |$ f
5 n% \  p$ l" t1 z, A
* B+ j: ]% X& P. Q6 r' f. X
; o  }! O& n, z. G5 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 19:04 , Processed in 0.085023 second(s), 19 queries .

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