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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
. E, C5 |3 e7 F  D- H/ N! ?( D
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
# V2 _9 b$ ]+ T( t6 s4 u+ v' m4 n0 a4 Z7 Z5 h/ I4 C5 Q& i! ?
  1. <div id = "computed_props"># s7 b/ v# E# t7 @; l
  2.     千米 : <input type = "text" v-model = "kilometers">
    # J* l; _9 ^6 X& b
  3.     米 : <input type = "text" v-model = "meters">
    * q5 l/ R' t; `! C3 E9 k
  4. </div>
    9 W: W& P: {  b( ]/ x9 f# v' ~* o* r& D
  5. <p id="info"></p>2 U- J0 ]$ r+ [4 _6 L
  6. <script type = "text/javascript">7 e- a5 D) K" h2 C' \
  7.     var vm = new Vue({
    - }: M* U/ e: N5 K$ |
  8.     el: '#computed_props',* s/ e% A( ~: @+ l6 }$ ~  ^# s
  9.     data: {
    # B) A6 G1 N, y# q, L/ [# i
  10.         kilometers : 0,8 d# Z* C0 U/ O, F
  11.         meters:0
    * P# O6 H! B& _9 Y7 E4 ~" Q+ L
  12.     },  J3 ~3 _6 [3 r; G6 L
  13.     methods: {
    ( m4 O! ]) v! A  N1 ^# ?7 ]
  14.     },
    . s" u/ W7 y1 y0 @, `' p2 u. k
  15.     computed :{3 j  B2 v' b4 r# }, W8 S; m
  16.     },
    6 w6 p  I) H, A
  17.     watch : {$ U  ]* r2 u- ?3 y, u+ B
  18.         kilometers:function(val) {; g6 @6 g/ M, l3 Z! s7 o' V# Q- @
  19.             this.kilometers = val;
    ' T% J  Q9 T  s+ |5 J
  20.             this.meters = val * 1000;& x0 H6 X# s6 Q; n3 J
  21.         },
    # ^2 M" }  G# s) D
  22.         meters : function (val) {
    ' z2 r* P) m1 T
  23.             this.kilometers = val/ 1000;
    * m: A; q; s' L- O1 `
  24.             this.meters = val;, k8 ]1 R/ U% J! ]7 g9 s
  25.         }: W  C& z) ~$ J* f- O" e4 @
  26.     }
    & w9 ]" _& n" M% H1 V8 `
  27.     });# }: O3 I3 g, y
  28.     // $watch 是一个实例方法
    5 p; e: I  s8 d& B2 V! r
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    ( c5 u( h1 p$ w  {$ J( s
  30.     // 这个回调将在 vm.kilometers 改变后调用& A( a4 V2 Q# ~( G. p
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;# ?- b0 e. Y* R- q6 i& Q
  32. }); Y' ^' a) t, B& m6 c
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
* @0 S9 O8 y) B; \' B

, @7 R7 E  y! w6 l; I5 j+ s# {
4 x- Z* d) X8 ?5 ?* M  p- Q* F/ I) w4 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-9-28 08:28 , Processed in 0.099645 second(s), 20 queries .

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