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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
. B0 f) r0 x: j4 A* W' p1 d
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例- @, |: E9 u& d/ s8 I
( `9 P$ a5 a* P4 J
  1. <div id = "computed_props">
    ; d* U- h0 M1 ?0 e
  2.     千米 : <input type = "text" v-model = "kilometers">4 _6 A. a3 N4 K9 T  g, r5 e
  3.     米 : <input type = "text" v-model = "meters">% |8 K5 n; j( u& @& H
  4. </div>& R. o# z4 @( t0 u; }: x9 \: S! m
  5. <p id="info"></p>5 K' l( ]3 s& o' c( }3 d
  6. <script type = "text/javascript">
    ; }3 K, j/ p! G, Q6 J
  7.     var vm = new Vue({
    7 u3 f: g& R1 q2 p$ L
  8.     el: '#computed_props',
    ' v/ P, }, J+ o( \$ `
  9.     data: {
    : x: r, g6 Q+ B4 ^$ [, L
  10.         kilometers : 0,
    + [! i8 W2 E3 |
  11.         meters:0
    5 T9 M: f1 P  m, p+ |- e3 Z/ V$ v0 ~
  12.     },
      O& R# f: K# @
  13.     methods: {
    $ L- w  n6 \3 [$ ?
  14.     },5 C7 h6 O4 H; Q, d
  15.     computed :{4 H" o7 S$ G8 X
  16.     },1 `& @1 Q1 D% r1 I" |9 Y5 U5 {
  17.     watch : {& O5 j  W& v) Z6 R# |
  18.         kilometers:function(val) {
    6 k( Z2 U7 x" j3 m9 M$ L$ Y
  19.             this.kilometers = val;
    & w% i6 J4 t% X2 X
  20.             this.meters = val * 1000;
    : u& d9 K" s+ T& ^' ]
  21.         },
    & ~; E) K& E. e' J
  22.         meters : function (val) {0 `# s0 l) y! q. P( G; K/ }( W& r
  23.             this.kilometers = val/ 1000;0 e  L" O& L/ M
  24.             this.meters = val;5 u) _+ B2 I$ g0 E& v
  25.         }
      ~  x' |1 b1 B, H% ~& {) r
  26.     }  l/ ~# S  {6 J- r. M: z( J3 z7 `  J
  27.     });6 j% t" G2 q( c6 Z
  28.     // $watch 是一个实例方法: L! W2 u' v! z. d7 t9 V
  29.     vm.$watch('kilometers', function (newValue, oldValue) {' N4 t+ O5 u5 I) J
  30.     // 这个回调将在 vm.kilometers 改变后调用: K: T5 {2 K6 ^1 y5 U
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    , K; c0 N* L- t9 T: t, j+ v: Y
  32. })1 |' x% f/ L0 ^+ s& |3 u5 ?% Q
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

) e) J6 a2 i" _, a! T$ e% {- a# _+ S% R( N0 K# _: E

$ P! c# m. h. X1 a
1 g, B/ Q# ^/ M% h9 ^: r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 19:02 , Processed in 0.053846 second(s), 19 queries .

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