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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8 r% [# `2 C% {5 O2 V
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
/ R6 |* [: A9 {# q- {' {/ C; v0 y2 }0 A* R
  1. <div id = "computed_props">
    0 Q7 X! ?1 v; u5 V0 J9 s1 ^2 \5 U  Z
  2.     千米 : <input type = "text" v-model = "kilometers">3 F# X' `" s4 m+ }! ^
  3.     米 : <input type = "text" v-model = "meters">
    $ g1 Q& @/ c5 y9 S  f2 ]: L6 F) c0 l: a
  4. </div>
    6 b9 g/ s8 q: ?$ k2 j; U
  5. <p id="info"></p>, {# p4 s2 S5 h  `1 p$ U. m( R
  6. <script type = "text/javascript">
    , \4 p- T% I) X7 r+ o8 Y, ^
  7.     var vm = new Vue({3 a- y  K( O' Q8 z( |# h" I- i0 z! h3 l
  8.     el: '#computed_props',% e: ?) E; @' I/ X1 }: v
  9.     data: {
    ; {# K% l5 O) J+ D/ [+ I, R. t" h& t
  10.         kilometers : 0,
    ! B1 b0 a) P$ G7 E0 D8 E4 l
  11.         meters:0
    $ P5 g; y8 e+ w
  12.     },: o; V0 P: P) F1 i  Y8 ^) I
  13.     methods: {
    5 t" D$ d9 f  J4 b+ v- l6 b
  14.     },2 R# w5 |7 ^9 L! t' C9 _- |8 f3 K
  15.     computed :{* u/ h6 S9 \1 o5 t. `' {
  16.     },# k5 D/ Z; o( o5 X
  17.     watch : {
    % n/ T3 g! L# _( j& N
  18.         kilometers:function(val) {' k1 `) r$ N0 n' W
  19.             this.kilometers = val;- \' `6 O' Q8 i7 c
  20.             this.meters = val * 1000;0 `3 {4 e: w5 l% k" J  f) L: m
  21.         },: y) R) B) N: V! S! b% Q6 @
  22.         meters : function (val) {
    5 W9 m1 I+ n" ~- X
  23.             this.kilometers = val/ 1000;
    % d2 p) o; |. w4 M6 s
  24.             this.meters = val;4 J  `3 C" z; t7 t
  25.         }9 J# X7 m& I" h" l2 u
  26.     }
    ! h$ x; I' b* P- j8 s' w% T
  27.     });( `5 v/ a2 e9 [- ?
  28.     // $watch 是一个实例方法0 U- S& d4 R+ t* M% z6 T
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    6 z% o# s8 E3 d+ H
  30.     // 这个回调将在 vm.kilometers 改变后调用
    : I1 ?8 K3 v  U0 a) e/ P5 z1 K
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;5 c8 x; ]+ V+ t' ^/ g/ Y1 V
  32. })
    0 C  d4 H! ~, n! {* H, L" D5 U' A
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

9 @" M4 k* `) t( e7 ?: t1 a( k& `: F8 T  @8 q" ^" \$ [" ~1 |

9 |0 {7 d2 x9 S& ^' p3 @9 u( j! b8 K- r% W$ v2 ~7 c% A5 S4 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-4 11:47 , Processed in 0.054696 second(s), 19 queries .

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