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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
% g3 X. t! N. O! M2 l8 j
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
9 k* B1 h( G, M9 r( Z; @6 O) N+ X+ D4 h  {( k+ Q+ c8 a- D" H
  1. <div id = "computed_props">" k9 Z9 o6 }& p3 O
  2.     千米 : <input type = "text" v-model = "kilometers">; C4 D  I( ?/ p5 T) I
  3.     米 : <input type = "text" v-model = "meters">5 V. x$ ]2 m) X5 y# A* K' l8 ~
  4. </div>
    ( P/ w- q7 ~& N9 K5 k
  5. <p id="info"></p>
    0 O" k1 V: u) L! B  j
  6. <script type = "text/javascript">
    6 F, N, G* L  d6 H& D
  7.     var vm = new Vue({
    5 t7 s. H8 p$ ?$ U% w
  8.     el: '#computed_props',  U1 K$ @+ t$ ]3 Z; G2 \1 p0 U( y
  9.     data: {3 G+ ~2 X6 d- R: a4 _* {+ D
  10.         kilometers : 0,( }6 o! R5 r% z; k" D. g$ u' c
  11.         meters:0
    ) x0 d0 V. N3 U9 ?6 \
  12.     },6 U! m0 c4 I, W7 H' ?
  13.     methods: {+ ^8 Y' J7 X5 }) R" i+ f) {
  14.     },, {8 g( m0 _& g& A
  15.     computed :{8 u" n' D) L6 W0 L
  16.     },
    : b6 H0 l  @& n  I& s
  17.     watch : {
    % A. L' A( P& x/ u8 V) w( F
  18.         kilometers:function(val) {
    $ w9 O/ m; B7 c, v, G# G2 I9 F  r
  19.             this.kilometers = val;
    2 Y- T' }3 Y4 u5 r
  20.             this.meters = val * 1000;5 Y0 b% v: u$ `' a" o5 e
  21.         },4 X2 i* I0 ~% n: h7 @' S, U
  22.         meters : function (val) {6 `0 _$ u/ x( D' }: a; ]
  23.             this.kilometers = val/ 1000;9 Y% `  i; N, z6 {
  24.             this.meters = val;# K7 z4 }; P& @* w" [
  25.         }0 {- @/ x0 v* G; D
  26.     }
    - u" g8 m$ V" L2 B
  27.     });
    5 D- S# E  R* s
  28.     // $watch 是一个实例方法: l) W$ |+ Q8 u- v4 O& Z, s
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    ' d4 i- X+ g+ J; ^+ i4 l3 h  j
  30.     // 这个回调将在 vm.kilometers 改变后调用
    0 ~6 A# v! ^' _1 m( ^
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    3 s5 B2 \5 X9 y
  32. })7 V. n9 V3 d0 {
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
3 N, W* {: P, x' z9 R* G* Y

' Z' J, m% B4 t% E: P0 T% f4 o* E7 D* _3 q; A4 k. H+ s: j: {
; e0 \9 {$ \8 T9 s9 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:29 , Processed in 0.124353 second(s), 22 queries .

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