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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
. D! L% H; A2 A- C! m* w
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例: m, Z; t+ I5 g4 |
9 o$ G4 L: Y4 [5 ^. q
  1. <div id = "computed_props">
    2 `2 _; }/ u1 Q9 w
  2.     千米 : <input type = "text" v-model = "kilometers">+ V4 C, h5 C3 c! k! u; l$ C7 u
  3.     米 : <input type = "text" v-model = "meters">3 I6 y: V$ [6 G  \5 \9 s
  4. </div>
    . w6 L! d2 X; E8 U5 O  M
  5. <p id="info"></p>1 ]: e( N3 E7 C% [5 P: Q3 F
  6. <script type = "text/javascript"># z- ~4 D$ W8 ~$ _. h4 ]
  7.     var vm = new Vue({6 q7 w6 l0 f& n; o
  8.     el: '#computed_props',$ |3 q1 @: R4 Y
  9.     data: {$ F9 f6 ?: B# r# \
  10.         kilometers : 0,& c; j  f9 p) b2 C
  11.         meters:0
    : K0 S% m5 ^& Q  o, b% g
  12.     },* h% _1 r8 x; A% |! N9 M, X
  13.     methods: {
    7 J' f. D' `% l) m( [
  14.     },9 G! L$ [2 ?& }1 x
  15.     computed :{. \4 P, h% x7 y9 \7 m0 s
  16.     },% w, }) r  C% m$ \
  17.     watch : {
    ' m! |% a' y( A1 ?
  18.         kilometers:function(val) {
    0 ^6 k% w- a1 D+ c4 m
  19.             this.kilometers = val;) f7 q4 w4 B$ T) {
  20.             this.meters = val * 1000;4 x8 K  f1 P) L; c
  21.         }," d, M( _' b7 C( e# Q: @! `( u
  22.         meters : function (val) {, i- \+ r$ k1 Y) w4 p
  23.             this.kilometers = val/ 1000;: u4 @) m/ V; N, o5 X$ W
  24.             this.meters = val;
    0 ~1 G; r# t% u# s/ b5 i
  25.         }8 P3 p+ v/ ^5 B5 I
  26.     }
    % k' {1 d8 K- H8 u! V8 ^& t
  27.     });2 c! z/ [; g6 ^2 V* y1 L
  28.     // $watch 是一个实例方法
    " S( }. L- U! x$ r" d
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    $ ?& |9 m6 _* y( @
  30.     // 这个回调将在 vm.kilometers 改变后调用8 f6 \8 M1 F/ s# v# E* p/ J
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;9 L1 W9 s0 w7 ^
  32. })+ N2 `# C0 L5 k
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
% A1 ^" |" k1 C! i# o2 |: C( z; X

: U5 u! @. p* P; X: ]- M, C' \/ S* x
: c- u2 ?; |0 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 19:04 , Processed in 0.057461 second(s), 18 queries .

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