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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

6 ?% H4 ~9 X0 b1 ^9 a( t
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例; Z0 B6 w* G/ \* h- G! V9 _! @/ J

1 R% E/ V1 {; X6 @) W5 @
  1. <div id = "computed_props">
    4 B0 o, ?+ {% D" \* w+ y
  2.     千米 : <input type = "text" v-model = "kilometers">
    + o  j+ V5 ~& W3 W/ r
  3.     米 : <input type = "text" v-model = "meters">. J: \3 e' y, [7 t. G3 t
  4. </div>
      u( ]1 e6 @# H1 q4 Y3 D2 A
  5. <p id="info"></p>
    % s% ]0 H5 f; F
  6. <script type = "text/javascript">% F$ t* s( M0 y, w/ P
  7.     var vm = new Vue({) n7 `3 L0 N! E. d/ `
  8.     el: '#computed_props',1 r5 D/ U. i' f# f. i$ Q
  9.     data: {6 X. \! |; y' ?2 n
  10.         kilometers : 0,
    3 \9 G' z/ v6 o
  11.         meters:0
    ) E4 N# F, O- f
  12.     },
    $ _. g1 O; o2 `
  13.     methods: {4 M  c- t/ W' u9 K
  14.     },
    , ^7 P* V' [  H  M' \) x! }$ J" K. E
  15.     computed :{
    - q3 @4 N+ g+ Y1 ~% Y
  16.     },
    3 Y. z0 D9 Z7 v
  17.     watch : {
    $ Y( f7 G( ~' [
  18.         kilometers:function(val) {8 Z; o3 j6 @" D/ m  @4 b
  19.             this.kilometers = val;
    ( V* i, R! U! p  G- u
  20.             this.meters = val * 1000;
    - C- n+ P% |* b0 X
  21.         },
    + H- n5 P+ ?9 F! a+ P
  22.         meters : function (val) {
    ) |* q0 N' i" U; j& k0 m
  23.             this.kilometers = val/ 1000;
    ( x- y! S; k% Y7 l$ k1 t# h" R
  24.             this.meters = val;
    # W, c1 F( h6 {$ F0 Z" k9 I" r6 ^1 g
  25.         }
    0 ~# S7 l  D9 c! n$ p
  26.     }& d2 M6 `8 F/ W
  27.     });1 q: z5 |3 o: g: l/ ^
  28.     // $watch 是一个实例方法
    7 s8 f# W+ X  G  m- ~, M/ J
  29.     vm.$watch('kilometers', function (newValue, oldValue) {' h; Y' x8 p- P% M
  30.     // 这个回调将在 vm.kilometers 改变后调用
    3 t8 s! T$ h, k) ~/ L' l2 s3 m
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    * q5 i7 b( r& O  F
  32. })
    / U6 Z. o* a& e) ], @- s# q% m# \! t
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

% r0 O! l/ s% P9 B; @# M3 Y, z( ?* {7 z+ f3 k
1 P7 X5 {# h- B

- t  w6 y& Z$ a" u- U2 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:14 , Processed in 0.108737 second(s), 21 queries .

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