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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

5 p- I' y. y7 m# b
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例! a8 \( B! Z7 z- v' W
) V! A0 ^+ ^+ U5 _$ u2 i
  1. <div id = "computed_props">/ I- g6 |; l3 g& \6 @0 e  `
  2.     千米 : <input type = "text" v-model = "kilometers">' |$ E, j$ T2 ~$ E8 e# g9 M6 j
  3.     米 : <input type = "text" v-model = "meters">
    + h6 u$ ]: v9 k7 Q& ]  Z4 `
  4. </div>
    5 i) J9 z* o( \. A
  5. <p id="info"></p>
    " H; T, P# F7 P
  6. <script type = "text/javascript">
    - B4 M* Q: T0 g# u& U& V* N+ R
  7.     var vm = new Vue({: f) i$ O/ G& k, P
  8.     el: '#computed_props',
    # J. J3 @2 e8 ^. l! @
  9.     data: {
    3 ~) y& U  S% T9 |4 G
  10.         kilometers : 0,
    ; e$ _4 L2 x3 k9 F, a- u
  11.         meters:0
    ' r+ _5 \$ c- Z( s
  12.     },# e$ G7 x" l$ ^0 P" v; F
  13.     methods: {$ @0 H, D1 V$ {
  14.     },% y( I+ u- r# [0 M& R3 z* R
  15.     computed :{
    - T+ p5 m0 o! I: p, V
  16.     },0 x9 {# v& y, Y
  17.     watch : {
    ) v) V: E- {' [
  18.         kilometers:function(val) {" N* F3 e/ U: k+ C
  19.             this.kilometers = val;
    " a5 r  P. @- L9 w, X3 \; s
  20.             this.meters = val * 1000;4 }! q" a: X/ Z/ b; Y6 ?
  21.         },
    4 ^( _  Z  e9 j
  22.         meters : function (val) {
    7 e; d9 |8 r+ O" S
  23.             this.kilometers = val/ 1000;
    7 a. N! H& E, ^+ u  F9 v& g
  24.             this.meters = val;
    $ Q& [0 h# K( d
  25.         }" w$ W+ l# X6 a5 l
  26.     }' b, O# z7 n5 h
  27.     });1 b: U" y" u( s1 o6 A
  28.     // $watch 是一个实例方法
    $ D2 ~8 X, W2 C/ X, G+ F. w
  29.     vm.$watch('kilometers', function (newValue, oldValue) {* L( a  l4 H7 r5 q( k7 P! L, K- ?
  30.     // 这个回调将在 vm.kilometers 改变后调用  M. D# f3 E; ?  B7 j% ^
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    ) z' G8 l) D; z/ [. C  h+ [
  32. })5 g$ k  n* V/ g( [3 ?/ l, `
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
* K, t) }- V( E! i3 H, }  N

/ d1 k) P) Z+ |+ A  @* a( {3 m$ b
: {' A* h% H" N/ y  n) q! ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-19 22:42 , Processed in 0.067277 second(s), 20 queries .

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