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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

  f( D/ B0 z8 {% X
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例' }$ w3 C4 T; T* B
+ Q3 N7 o8 H! h9 }3 S( V/ f; Z
  1. <div id = "computed_props">
    ' ~! O8 z# T. F0 K. R* g
  2.     千米 : <input type = "text" v-model = "kilometers">) ~8 x; k" Q) _: k) l3 j' p' a- H6 z5 ^4 s
  3.     米 : <input type = "text" v-model = "meters">% \. F) P/ }% y# u1 E0 `( {8 n- u& A3 W
  4. </div>, R: K  ^) w& z4 j4 Y# d; `. E
  5. <p id="info"></p>% l( F% _, T" O- q2 [
  6. <script type = "text/javascript">( H. Z0 e* C+ N  k% |2 n) ~
  7.     var vm = new Vue({" Z. O( X  n; W5 ?7 t7 i
  8.     el: '#computed_props'," [1 w# E4 m6 u
  9.     data: {
    & @/ ?- h* X0 n' t1 |% y* Y
  10.         kilometers : 0,
    ) L, }7 C( q  A* R+ B4 A& T! U
  11.         meters:0
    3 g1 ^. e2 Z0 {
  12.     },
    ! }3 I) @7 [* u. d& O
  13.     methods: {
    * @# w& g' _2 R6 y( B3 [( D
  14.     },& a" v* u5 y" o- ]0 _5 x
  15.     computed :{
    * U" Q! q7 Q0 K5 \1 }/ Y
  16.     },+ V" \- ^: x; Q# p
  17.     watch : {
    + b/ |) Y, A$ ^' n: c
  18.         kilometers:function(val) {5 X; H3 H' h- p' Q
  19.             this.kilometers = val;
    3 y0 D2 ~7 f  U+ }6 }$ e3 v
  20.             this.meters = val * 1000;
    + p5 f3 W3 G9 _; O5 |9 {
  21.         },( H: l# y+ I8 f
  22.         meters : function (val) {
    5 Z8 Y; j( c+ O) o4 @; S
  23.             this.kilometers = val/ 1000;+ x) W  ~3 e; j5 ^
  24.             this.meters = val;
    * x9 e$ {# I% K" `
  25.         }# S1 p) H2 w) y5 w6 Q3 |
  26.     }# P, A* D! v$ U  U: c, n2 g% g: |
  27.     });  N# L9 l  @% a( Z+ U1 B
  28.     // $watch 是一个实例方法: s& [, B! I: o5 ^* I8 Z
  29.     vm.$watch('kilometers', function (newValue, oldValue) {  {! V; I$ y- G# Y
  30.     // 这个回调将在 vm.kilometers 改变后调用
    2 E5 z- S; n5 `$ D& C6 B. @
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;0 V5 A9 R4 {% l8 ^+ g0 l  U" e
  32. })1 x  y" D2 e* L; c% w/ a
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

( P# N- \/ I6 V7 k) W8 ^
/ o+ N5 u# I$ r3 }# I
/ t$ w( B+ z% M
4 [1 V  t: L$ j$ c* b3 ]8 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 15:55 , Processed in 0.055330 second(s), 20 queries .

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