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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

9 h( Y7 \: F; k; r
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
# O, T% p/ W& u/ X" J, N0 [5 z( }. M( n  P! c
  1. <div id = "computed_props">1 l1 E4 J0 x8 D" e$ d1 R
  2.     千米 : <input type = "text" v-model = "kilometers">
    $ v( J/ Z" J% @) Q& r! A
  3.     米 : <input type = "text" v-model = "meters">
    + ?; \# R8 r# e4 [
  4. </div>
    ( j2 n9 N' s; L/ ?4 b. {9 c- S* L
  5. <p id="info"></p>
    7 `4 n; j) L9 ~! \9 {
  6. <script type = "text/javascript">7 h) j! k! _4 I4 f
  7.     var vm = new Vue({, x& R$ v0 Q* _0 k  B# t
  8.     el: '#computed_props',* {% ?! Z- `7 L3 I) Y3 y6 k
  9.     data: {! I$ V$ {( @+ _, t3 T% w( r! t
  10.         kilometers : 0,( o- A" u# y5 p/ _, ?
  11.         meters:0
    & _" _, u  y* S1 ^6 W9 r
  12.     },
    4 H8 p, H' D) k
  13.     methods: {; B: z& {. [% y
  14.     },) f5 K4 l- |* P! D
  15.     computed :{
    3 f3 e% R7 \  I5 {0 n
  16.     },
    + S6 O$ @# B/ I- K
  17.     watch : {# l. ?5 P; h% E. [9 o& S
  18.         kilometers:function(val) {
    " I" d; M; N; E& B( |
  19.             this.kilometers = val;: H/ G! b1 D3 _
  20.             this.meters = val * 1000;
    5 p2 F$ K; x2 b$ y
  21.         },
    ( |+ i% F  P$ @3 A' e, B, e  G
  22.         meters : function (val) {' V: _3 X) i0 y7 T2 k
  23.             this.kilometers = val/ 1000;
    : c5 h1 D# ~  m" ~: ~
  24.             this.meters = val;! Z6 g/ z1 Q+ f  U! i! q  O& v
  25.         }
    $ D; g1 @7 @2 U5 }# J7 V
  26.     }
    9 r: B1 a' v1 X& f
  27.     });
    5 ]) u* Z& o, M+ E4 ^0 Z) C  s
  28.     // $watch 是一个实例方法+ G- L! M! t: r* _, L' U9 h9 M
  29.     vm.$watch('kilometers', function (newValue, oldValue) {* A% x( e9 y) }" Z: m
  30.     // 这个回调将在 vm.kilometers 改变后调用
    ! ?1 j" J- Y  {$ A! |1 c% [
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;. ]) c5 i) ]0 g4 x$ E
  32. })
    2 `* S% P7 M, j8 v! P
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

7 k/ T. [1 a; J5 d- }5 P! [8 ]' ~+ l4 @3 I& O1 t5 h3 R

' |. @, D( J3 Q
/ {0 A4 M5 g% j" M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 17:21 , Processed in 0.049475 second(s), 19 queries .

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