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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

6 Q( y9 j+ M! S4 a
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例$ j! m: {8 L: H+ K2 u3 @3 M% U- O
. @4 |. Q& x2 N. e
  1. <div id = "computed_props">( W) q' Y' G& D- \
  2.     千米 : <input type = "text" v-model = "kilometers">  d; l9 h7 t# W
  3.     米 : <input type = "text" v-model = "meters">
    . s( c, W3 P: r" [9 r; O3 ~
  4. </div>
    5 F0 ]% ~+ S! }( K- ?* m
  5. <p id="info"></p>. M2 h2 W% P, e$ q. y
  6. <script type = "text/javascript">
    $ F3 A  @  ?8 ^4 v
  7.     var vm = new Vue({
    ( g/ Y2 I5 _+ z5 O0 `8 B  I
  8.     el: '#computed_props',$ b6 C) y- y6 R% K
  9.     data: {
    , H- \& K) e. u- R/ ]5 O
  10.         kilometers : 0,6 c% @, T4 G3 y! e5 R4 E
  11.         meters:05 Z# B# O# R; i' o' J: q  A
  12.     },
    & N' R$ k) W, K+ C+ s* U
  13.     methods: {& f. Y- E( O' z+ y5 ~( Y# e: c5 O
  14.     },
    # T2 W$ c  \1 W$ u/ f
  15.     computed :{
    9 t: D: E& c2 y/ p
  16.     },
    6 b% w* C/ R% |% v2 B
  17.     watch : {3 D" G' Z+ E; P+ m6 `7 f
  18.         kilometers:function(val) {2 |( a0 C3 e" S3 |6 |
  19.             this.kilometers = val;' A) B$ {" l( p+ n
  20.             this.meters = val * 1000;
    0 C9 l4 J" X/ p5 K5 N" U
  21.         },; H9 ?3 ]3 a) g) T( F' i0 j( }6 s; x
  22.         meters : function (val) {
    * j  o$ S9 Z: k
  23.             this.kilometers = val/ 1000;
    ! x# Z8 d/ `: j
  24.             this.meters = val;, M7 V6 h6 a% q+ A- N# l
  25.         }1 P% a; {3 w- K; x. x
  26.     }' p7 ^& l% Z" |$ K. W7 |3 y
  27.     });
    ! |8 f2 Y- \2 i
  28.     // $watch 是一个实例方法8 y, B; c, A+ i% n0 B+ W$ Q
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    ! P3 k2 r! J, b6 {# m# u1 o* X0 C' u6 [
  30.     // 这个回调将在 vm.kilometers 改变后调用
    / ?3 x* W( C) d# ~
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;4 {' E2 p+ S% U' z: D/ h  Z
  32. })9 U+ ?4 h4 N; w8 {9 l' \0 E
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

* [: N. o9 Q6 \2 r3 b& M- Q3 `4 E% c& W: A% _6 M

& U; k) W) w% m7 b; u; L
; e2 z! o, Q( E% u0 c' g" p% u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 22:59 , Processed in 0.110588 second(s), 21 queries .

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