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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

2 v( {, F) y- e6 o8 n, Z4 {6 {
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例1 @0 V& y$ S- C8 _9 t3 V! |# v) J
3 x4 R; i1 @8 X1 o, r, h- n; E4 h: p
  1. <div id = "computed_props">
    3 y- A& }9 ?0 Q% `5 a
  2.     千米 : <input type = "text" v-model = "kilometers">0 c: n) l  U0 {% m3 M$ V
  3.     米 : <input type = "text" v-model = "meters">3 l$ q' n1 n) I% m2 N" ^
  4. </div>5 }( _  i/ t6 W. M5 y5 |* K
  5. <p id="info"></p>
    3 w5 H! f) l0 C" K% L/ O
  6. <script type = "text/javascript">7 a9 Q& D! s. g7 Q5 R# j. E
  7.     var vm = new Vue({
    & o$ j( U; |! J( [: v/ P
  8.     el: '#computed_props'," c, ~/ [( @8 \% Z% a1 W* q" v: |
  9.     data: {! E6 N* u2 T6 Q- H' U& e2 m
  10.         kilometers : 0,) B( L- ^. h6 [+ v9 f. q* E5 U2 \
  11.         meters:0! G* R. y5 m! b8 [% O4 m0 R
  12.     },! I; l* ^0 c4 G
  13.     methods: {* |; j  ?; h6 I3 A9 b
  14.     },
    2 C, _+ O0 ^) a3 g& |( z# @
  15.     computed :{" U; K/ u$ P( x8 a9 k$ H
  16.     },
    6 f8 n6 u1 n! ]- o$ M( A- z  g
  17.     watch : {
    3 K) D5 q; e$ S9 S6 |+ b
  18.         kilometers:function(val) {
    6 k! {- A) V7 D2 D9 g
  19.             this.kilometers = val;( g+ `8 {: V( K0 ^
  20.             this.meters = val * 1000;1 E& ~) x  {9 R& B# g, Y: n
  21.         },
    8 S5 ~, [2 T7 M0 x
  22.         meters : function (val) {
    0 n2 C8 o6 D. O- _# ^) m5 m' F$ w: d
  23.             this.kilometers = val/ 1000;7 q! D& e& C- K! W
  24.             this.meters = val;
    3 m- [! `2 h6 H
  25.         }
    2 {' X! V' C( ~- v$ i& a9 @
  26.     }" t% P2 D- y* q. J+ b
  27.     });
    9 b% A+ F, x6 F* c' E
  28.     // $watch 是一个实例方法+ N; R! M  r, _! m9 u2 A
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    . t# H4 D% p0 X/ d7 Y) e
  30.     // 这个回调将在 vm.kilometers 改变后调用
    0 W, L6 _1 j+ @  d( t
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    + D1 X5 J, p" o  B0 z7 {' o
  32. })
    ' v4 r5 F/ b% I: G6 b2 P
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
8 _0 m9 f; y: b

, S! e% e& G- G2 _, R7 l. O
7 d+ u" j7 Y  q
$ w6 H- J# I0 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 17:24 , Processed in 0.062976 second(s), 22 queries .

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