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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

) \$ H6 \, V" b0 r0 @
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
! }; u0 V) e* n. U8 Q1 E! }7 P/ @8 F. ?) D# K2 z7 J) q! _9 G
  1. <div id = "computed_props">3 ^  ?; [( E) u1 E
  2.     千米 : <input type = "text" v-model = "kilometers">1 `) F0 E9 B1 L+ X/ @7 d9 Q5 }0 i
  3.     米 : <input type = "text" v-model = "meters">. m: p5 Y1 P) L2 S3 J7 {
  4. </div>
    8 }& M- f4 K+ u* U; G$ H1 R
  5. <p id="info"></p>
    ! ?* c: ^  Q: {3 a
  6. <script type = "text/javascript">, e& L6 X% D6 K8 E: ?* n* {+ @9 {
  7.     var vm = new Vue({
    7 `: E: L6 g- L2 C. O
  8.     el: '#computed_props',: }6 E; h0 F8 n: Z# ^
  9.     data: {- e2 W, y7 D# I  }
  10.         kilometers : 0,
    & e5 X" m" B, M
  11.         meters:0
    5 X4 G, C9 ^! ?. L* k2 C4 a2 V
  12.     },
    / H! A% ^; [  G
  13.     methods: {6 ?9 f, M$ h2 D0 E! g& }
  14.     },: q" j7 X* x6 _  d( z
  15.     computed :{
    ) z( p: O4 \7 A
  16.     },3 M, Y4 S* ~& B+ b
  17.     watch : {
    5 z- p3 W  `  w" l
  18.         kilometers:function(val) {7 u& i' j4 y$ X* T9 I9 v7 ^
  19.             this.kilometers = val;1 y% v9 l5 ?% {4 _. _& }5 C
  20.             this.meters = val * 1000;# [) Q  b. X8 U1 `7 G* E
  21.         },. A- z8 z0 X  F% N8 b. M
  22.         meters : function (val) {
    ; x* b* c" V* I# X% F
  23.             this.kilometers = val/ 1000;
    ( ], _& S' x' L( C' d
  24.             this.meters = val;- x3 l6 F% z+ O) P- H
  25.         }
    / k% L& \% ]! S; Y- _! r# Z
  26.     }0 o. R& K1 F% p2 L. D8 R  G: `  s+ J) Q
  27.     });
    6 z- j; N: K9 Q% Y8 c# u7 F
  28.     // $watch 是一个实例方法4 o# W2 o/ a/ l% L
  29.     vm.$watch('kilometers', function (newValue, oldValue) {, ?3 W: [8 T6 _8 r
  30.     // 这个回调将在 vm.kilometers 改变后调用1 Q; a& {* t' b
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;$ ^1 l; d- b" f  P) a: x
  32. })0 d7 s' t' S4 ?
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
8 g) E. t8 ^  h% W( R$ |
) e$ ]- A0 H* E
& i3 x4 ]& i5 K% K+ ~! A

/ Y* a3 N. s, A$ Y9 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 17:35 , Processed in 0.143532 second(s), 21 queries .

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