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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

0 s! E; g$ J. j8 @/ m  [) K
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
4 W* o. q9 T: n3 S+ n8 y% V  T$ Q! |( C3 T: J
  1. <div id = "computed_props">
    7 ^$ o! N) Y0 S) ]  V% r/ C9 G
  2.     千米 : <input type = "text" v-model = "kilometers">/ B8 N4 q9 \/ d& {& R
  3.     米 : <input type = "text" v-model = "meters"># C( p) t8 `# H3 O8 S
  4. </div>
    ; |# t8 B" l$ b! _7 A
  5. <p id="info"></p>
    1 e) m  x  `6 G8 q5 B
  6. <script type = "text/javascript">. e% C4 z( p! k' k1 W
  7.     var vm = new Vue({! n* m" n: D" f0 D
  8.     el: '#computed_props',1 u6 ?' V+ u+ P: J5 Z
  9.     data: {6 T" S) A! F( C" A, g& d3 x( R5 |" p
  10.         kilometers : 0,
    3 N' n/ c- s, c" [: u* u
  11.         meters:0
    8 L0 \: d4 z7 Z. j( G  V; t6 Q, h
  12.     },
    ( X: D; X- j, k9 K
  13.     methods: {7 g- H" n# A# _* i2 Q0 n+ x7 B
  14.     },* r$ A2 ~( [( {, Q' G
  15.     computed :{- L7 B" b( ~8 j7 p/ j
  16.     },, w' F+ p  s1 d+ i# R8 @6 P. g
  17.     watch : {( V5 H, U1 V# Q$ S- G
  18.         kilometers:function(val) {1 z7 g  t" Q+ e0 X
  19.             this.kilometers = val;- D( i+ E  n1 \: a' ^; c( F! b* d
  20.             this.meters = val * 1000;( I8 W% l3 @! C% p$ d' h
  21.         },
    & F  I2 {9 }4 w$ d8 [
  22.         meters : function (val) {
    ) H7 B4 D: ~- f, T# |. r( y, Z
  23.             this.kilometers = val/ 1000;
    - Y8 b6 l5 S/ |  a
  24.             this.meters = val;
    9 O3 e2 ?. y, M3 x
  25.         }
    7 t( z! Y9 w& q
  26.     }
    ; |4 D  {/ o' ?) c" \+ N3 |
  27.     });
    6 k3 k* w  b& i
  28.     // $watch 是一个实例方法& W# @! \- X$ [+ M
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    % B- ~! j$ J, x9 y" B
  30.     // 这个回调将在 vm.kilometers 改变后调用7 u$ m* ]/ O& B/ @4 h5 g6 z3 r
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    3 q0 r0 V; }- Y+ q$ n8 g5 q
  32. })
    - j$ v) ]$ c- l* U3 x, b3 U  `
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
6 J# a  b9 Z, M- R, U* d4 ]! M

" w0 h% h$ @4 L) \" n
. l2 D' [0 a& |5 {. m/ S0 y* P0 U+ t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-4 09:30 , Processed in 0.056625 second(s), 19 queries .

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