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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

2 K& k. Q) e* B9 a8 y1 J
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例" R& N3 G4 U7 U
' @! o1 W! F1 X
  1. <div id = "computed_props">/ ~( t+ D8 Y' S( d
  2.     千米 : <input type = "text" v-model = "kilometers">9 X0 f, E& |: `2 K5 T8 q3 j* I
  3.     米 : <input type = "text" v-model = "meters">, G: e" x: B+ ]: c3 p
  4. </div>0 r# a! ?& r5 c& `) @( ^' k1 W% t, S
  5. <p id="info"></p>2 [. j  G+ E# l( @" m6 X
  6. <script type = "text/javascript">
    1 t$ k7 e# P! l+ _
  7.     var vm = new Vue({0 z2 N+ u1 u  l, ?- y
  8.     el: '#computed_props',8 |  t+ o1 s' ]5 O* l" I) F' c2 H% Q
  9.     data: {8 |- y0 z: _; \( y: `3 Q- c
  10.         kilometers : 0,0 l. D! J# {% E7 z& H, I5 {
  11.         meters:0
    % \* A, l1 s4 S7 u
  12.     },
    , Z( Y6 Q  g! E/ [
  13.     methods: {% q, w" \% _) B4 x( u: b
  14.     },, w" A4 u# e) U* q, o0 \9 I& v9 W
  15.     computed :{2 |2 a! D& R" K( _
  16.     },
    - P  M6 w& B7 e, B
  17.     watch : {
    ' ~  z( ?$ x% \* ^$ ]& N/ Y
  18.         kilometers:function(val) {& |! G! R# H+ k5 f* s
  19.             this.kilometers = val;
    * J) P( _2 B% b& P
  20.             this.meters = val * 1000;$ b; N' F9 a2 M2 P( m" ~3 M
  21.         },
    ) m. i* K  {1 u5 a
  22.         meters : function (val) {
    + @0 O" b: C/ c0 i
  23.             this.kilometers = val/ 1000;; p4 T$ O/ D# d: k! g- R
  24.             this.meters = val;
    ! G! }/ D1 U& d8 M5 f1 |% Y
  25.         }
    5 H, K  _6 B# ^4 b2 h
  26.     }- l5 j) d0 W5 K1 D0 r  l0 ?
  27.     });
    0 b2 d/ ?. F4 w. ^1 T7 r4 S# \
  28.     // $watch 是一个实例方法
    - `% c! |0 `, q9 p* o
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    1 L* p0 ?! |1 K
  30.     // 这个回调将在 vm.kilometers 改变后调用
    4 @3 h4 u* s; M( K
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;  g" H- D! I. E2 {
  32. })
    4 z; g7 {  K- ~# O
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
% K$ J* y; }0 b% @! K. p  f0 Z3 e
, u/ d8 D$ T  h) C

: q7 z/ j/ p" F$ S! K
% B+ X8 ~" M/ O+ a8 p. r" P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 16:07 , Processed in 0.112099 second(s), 19 queries .

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