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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

- M) x6 C( b3 \2 f
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例- m' w# ?6 w# u
# L! W4 G9 Z, W9 C. ]: L$ [: j8 }
  1. <div id = "computed_props">
    / i, k  L( S6 {
  2.     千米 : <input type = "text" v-model = "kilometers">/ @) R( ]% i9 v
  3.     米 : <input type = "text" v-model = "meters">
    0 b2 ?1 }& L( F
  4. </div>
    & b* \' q$ P# A4 y) A
  5. <p id="info"></p>
    ! Z$ G( m$ h1 ]
  6. <script type = "text/javascript">
    . D8 S: @) m* c- \
  7.     var vm = new Vue({
    . E! L1 J3 N* j/ w4 S( l
  8.     el: '#computed_props',
    : d4 c) P/ Y. h1 R2 J" I7 B. b: a7 g
  9.     data: {
    8 Y: |  Y/ n0 X* v2 x9 B7 u2 ?
  10.         kilometers : 0,
    $ q: ?/ F% d& B: P" k
  11.         meters:0
    2 @& i: Q) u" _' C9 u7 s9 [: [
  12.     },
    3 F; f# d' b; F9 L0 Z5 z' J  X
  13.     methods: {( N: p" z- Q- F3 \
  14.     },  R8 X1 p0 |# h% W, G0 a
  15.     computed :{7 B6 e! y( e; j$ U! F. G) _
  16.     },
    $ q, Q) ]; R3 k' r! v; L7 }- m) X
  17.     watch : {
    2 ~3 t; z1 I6 t) O1 [
  18.         kilometers:function(val) {# n% A5 g+ E/ D6 Y* G
  19.             this.kilometers = val;
    + \, r. [% m' Y
  20.             this.meters = val * 1000;1 j  X! C& T: D# H
  21.         },( F4 \3 D. y+ o* g5 [8 {" S9 p
  22.         meters : function (val) {
    ( A# m! n! p) ]" i1 b
  23.             this.kilometers = val/ 1000;
    . H( ~  I* E* S
  24.             this.meters = val;7 J- E& I/ }* K
  25.         }
    - `3 p' p8 Q; K8 x& j  f
  26.     }# `; h, C% C$ x( h7 P* O" j( Q. w
  27.     });
    + |1 V" d+ N, o0 _6 U' f- }( n% r
  28.     // $watch 是一个实例方法
    6 i' S' C* X8 @8 _; D
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    4 b% A( w: n$ \& P
  30.     // 这个回调将在 vm.kilometers 改变后调用" h2 S7 _+ n% o9 T
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;# e2 U3 P. |' Q6 U) H$ H
  32. })
      u$ }( |7 j6 O7 `, {
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
1 r& H( q, f9 B9 ?; ~% b" w
7 l" c. F- Z* U, _( S* _" M
% j, q( G+ f3 _$ o( S

  X3 ?3 @4 l0 S5 Y* S0 z' _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 21:02 , Processed in 0.097448 second(s), 20 queries .

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