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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
( ^; W0 I% @  ]# `- j: f
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例7 U1 q* a( E, y# b2 J$ a
+ R. e7 f, X0 M" D$ t" n3 Q
  1. <div id = "computed_props">
    , H5 O( L1 F2 P, b  e% h# e
  2.     千米 : <input type = "text" v-model = "kilometers">) S5 L7 I! n# K2 [
  3.     米 : <input type = "text" v-model = "meters">
    ; x; s) q* K( @1 T
  4. </div>
    0 Z9 E- v+ n% h5 G& H
  5. <p id="info"></p>
    ( `+ L& {+ O/ I. G+ b
  6. <script type = "text/javascript">' m# I+ |+ \  s6 B* b
  7.     var vm = new Vue({. n4 i" [3 d. C! ?4 t8 [7 h
  8.     el: '#computed_props',
    : y& b: o/ N# k, `, @% }( o/ c0 o, V7 [1 O
  9.     data: {
    " @( U& @) {, V2 P- f  R9 C$ s5 _
  10.         kilometers : 0,
    ) ?; u  w9 |: U- m6 R
  11.         meters:0* h' R4 N3 J+ m$ C
  12.     },
    * D. p/ N# Q& g8 L7 x2 x
  13.     methods: {4 s, Y7 @5 B8 n, `: K2 t
  14.     },2 c* g7 {: t3 i3 o1 L
  15.     computed :{% h3 I$ a% a- {# g
  16.     },
    & q: C& A3 o9 a( G3 G
  17.     watch : {
    $ i/ T% X& g5 a( Y# i7 M
  18.         kilometers:function(val) {( f0 e8 v! i2 ?/ c% n/ n8 F3 H
  19.             this.kilometers = val;8 f! o! h6 v( L1 ?3 Z& i
  20.             this.meters = val * 1000;
    + [2 X4 Y$ g. q8 X
  21.         },! w; F0 t" [1 \: @) [
  22.         meters : function (val) {
    3 J9 {1 K# a$ V' G+ i6 @- c7 t
  23.             this.kilometers = val/ 1000;- @0 P0 g/ B6 @! o
  24.             this.meters = val;" P. n$ j+ W, ^; m! L" v. Z
  25.         }
      M# t, [" Z! Y$ N  G
  26.     }
    ( X0 s  |0 j, V" q
  27.     });: I. N5 O  q9 m
  28.     // $watch 是一个实例方法
    3 a) N; D0 M7 j. M( U2 F, g2 F! D: d& p
  29.     vm.$watch('kilometers', function (newValue, oldValue) {* ]( W7 T" j: ^& V8 V
  30.     // 这个回调将在 vm.kilometers 改变后调用0 a, g9 _) _9 T& W6 r) n! x3 q
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;0 C* G& U7 ]. y
  32. })  ^; m/ R6 @" z( K
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
% d7 h6 C- I. q, b3 F) K
; p3 |! R. ?3 A+ n5 j# }: ^
$ B- s6 B4 d' O$ }1 ~; e
2 a- |: \& b7 c- ^$ z# M) v9 J  W* t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 20:19 , Processed in 0.068642 second(s), 19 queries .

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