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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

& {( }4 J9 R7 A# i; A- A  s
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
# s- \! h5 d% C' `/ S' D( D& k5 g
  1. <div id = "computed_props">. X) z+ f) @$ ]5 T7 {! l/ Q
  2.     千米 : <input type = "text" v-model = "kilometers"># N) Z4 A6 V" j; y" A$ h! ?" ?
  3.     米 : <input type = "text" v-model = "meters">
      R( g" N7 |  T2 s
  4. </div>( n* Z) ]$ `$ m# Q: A) q
  5. <p id="info"></p>
    + K. f! e; v/ V5 L1 H$ v0 S
  6. <script type = "text/javascript">
    3 u8 J2 f! `' D7 Y/ E$ g9 {
  7.     var vm = new Vue({( M8 r9 M  e# w
  8.     el: '#computed_props',' \2 s$ Q2 ~7 v' ~1 |* H
  9.     data: {) P/ C3 H2 t2 r" y$ W! i* z
  10.         kilometers : 0,
    & ~, X- q( O& G" \; P4 g, `8 |
  11.         meters:0, W4 B6 u2 g& g7 a1 v
  12.     },
    : V9 y4 g4 b" b3 H, P9 a/ b# {$ N3 [
  13.     methods: {
    : I/ ]6 ^" R! ?+ @: W' T
  14.     },% K: d; R9 l0 s* V- c
  15.     computed :{
    ( M; q7 v/ \- Y9 ~3 [6 k6 b0 F
  16.     },
    9 c2 T; b4 y7 R/ B
  17.     watch : {
    4 c# s9 \9 {( w
  18.         kilometers:function(val) {4 I& \0 i2 ~% Q, m  S
  19.             this.kilometers = val;
    " N: Y" M0 r+ |, v
  20.             this.meters = val * 1000;
    ( R, v0 n* x( i4 l
  21.         },
    4 {, k/ s' {( l  K4 B0 ]& L$ J! ?
  22.         meters : function (val) {
    9 |% h8 J! A6 N8 O2 X
  23.             this.kilometers = val/ 1000;: m) R: H4 X7 ^# u" K$ q
  24.             this.meters = val;5 N% j9 s0 o4 v1 K
  25.         }, q: _0 G+ c1 S
  26.     }' m" J( J6 G$ o; _% P0 A9 Q
  27.     });) b) _% L: t3 `6 p$ c/ U4 [. e
  28.     // $watch 是一个实例方法
    / B4 a3 p' u1 H# b. f
  29.     vm.$watch('kilometers', function (newValue, oldValue) {7 T. z+ ^& z" P: ^! K) Y
  30.     // 这个回调将在 vm.kilometers 改变后调用  e8 r1 P7 j  }- j  Y
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;0 a, ^4 \* G; t' `' \6 `
  32. })4 _' i( F; O) i$ c6 z; X: X
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

3 c4 Z2 [1 ~1 L9 t, N- P3 V% Q$ O3 S: C
% n7 I* [. h; H  @- a, e# Q
. ?2 c: A4 M# R' w* f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 08:14 , Processed in 0.055388 second(s), 20 queries .

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