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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

* J- c. w4 |" x) V
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例2 u# n% x: }1 x- M0 q
) @5 l/ M+ Q% n' V5 N9 z" }' J
  1. <div id = "computed_props">
    + `2 _% t) e- P7 F+ a2 C! y: T
  2.     千米 : <input type = "text" v-model = "kilometers">. n' [( J1 b& l" Z" I
  3.     米 : <input type = "text" v-model = "meters">. |0 X& f8 r9 P4 O. z4 A7 u
  4. </div>! M% T6 E# s) w# Q# P1 m
  5. <p id="info"></p>
    # O3 }- I* Q" k- \  {
  6. <script type = "text/javascript">0 R: h  O5 U5 T2 L4 x9 l
  7.     var vm = new Vue({
    2 {4 c' B7 n( L% z5 ^/ z8 X6 L
  8.     el: '#computed_props',3 F5 ^8 }( r5 B) C  q% z% t8 s
  9.     data: {
    & M% W& v( P4 O, M
  10.         kilometers : 0,
    : J7 C9 g) X& I: ]4 S, P- x0 |/ x6 J1 x
  11.         meters:0
    7 I( o* h, D0 ^* Y- t4 B
  12.     },
    5 F0 @* a% s( e
  13.     methods: {
    3 ?* I  |! {4 {/ R4 q+ F1 V
  14.     },
    * O$ K7 `7 U! I4 e. P: y' C+ _2 ?
  15.     computed :{
    ' [) c2 J7 h/ @
  16.     },& N" Z0 B2 B$ r4 F, P$ J- x" \2 q, P
  17.     watch : {+ u( j" k( T5 d% a7 A+ ]
  18.         kilometers:function(val) {8 ]/ r& S/ o/ G9 V0 g* \
  19.             this.kilometers = val;
    . e! v- x. Z7 ~) |3 W3 E
  20.             this.meters = val * 1000;( Q9 q% k4 C2 u" \+ _$ y
  21.         },$ f2 _  t/ m% {0 D( y6 M6 s
  22.         meters : function (val) {/ g5 i9 ^) R0 Y1 q+ u& [' C
  23.             this.kilometers = val/ 1000;
    1 R1 q4 w  J7 B; B: O" A+ i/ t
  24.             this.meters = val;8 d; u! m! L6 I+ k
  25.         }
    : f2 M% @& L2 H' [6 ^' ^
  26.     }
    8 q* K; |6 a1 Y6 V! `* ]( z; F
  27.     });
    1 w! z) L% G5 X/ J$ l/ X
  28.     // $watch 是一个实例方法
    ) h" Y7 k5 x1 L$ S; D/ t
  29.     vm.$watch('kilometers', function (newValue, oldValue) {! I! J  P# j( t) e3 R  P- u
  30.     // 这个回调将在 vm.kilometers 改变后调用
    $ K- Z. n) G6 h
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    / Q; x% e3 B% m  Q, V5 A0 z3 N+ f
  32. })& J) x7 H7 I$ M7 x) p
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
" T( i" w6 {7 l9 C% I/ c
2 G- c1 j! G# O+ y* t/ x
% L, p! \2 l1 j# ^& G

& v/ g3 u. Y0 ]% o, n3 w0 ~( t3 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-16 05:51 , Processed in 0.119809 second(s), 21 queries .

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