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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8 i% @6 {' {% p( d
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例2 e- P  h& m9 v4 b
4 Z) M2 r) U! k3 n1 Z6 S4 _% y7 _
  1. <div id = "computed_props">
    3 ?& n+ m/ ]+ ~& @& D1 Y
  2.     千米 : <input type = "text" v-model = "kilometers">
    * C9 t0 Y9 J7 n9 U2 |
  3.     米 : <input type = "text" v-model = "meters">2 T0 z0 R& S8 p& V! f6 p
  4. </div>
    7 G9 v+ R# R. }+ P6 x+ m
  5. <p id="info"></p>+ u+ r8 n, E; \) D1 @. x- d
  6. <script type = "text/javascript">" z- Y5 v0 g: \5 J+ a6 h( E
  7.     var vm = new Vue({0 [2 C8 ^) V) _! v  l- B
  8.     el: '#computed_props',
    $ o. O( ^& P5 k( T
  9.     data: {( }2 \6 W" S) b$ x5 @  y
  10.         kilometers : 0,
    5 V' G1 U2 T; z3 [1 l! D- o
  11.         meters:09 W! R$ {: {1 O6 Z! @
  12.     },5 |% O, [4 f/ n3 L% O
  13.     methods: {) W* w1 y* v3 y5 l/ Y
  14.     },
    5 Y: a$ q* N6 M* ?3 n- M
  15.     computed :{3 L& n* ^+ y% m2 [' j" P* T
  16.     },
    8 K# h: K7 V( V
  17.     watch : {, |( I* {. ]$ D) N
  18.         kilometers:function(val) {
    3 j0 p1 x6 O7 [6 H+ B8 ^: y8 c7 a6 h
  19.             this.kilometers = val;5 q1 ^7 e0 }$ T- N, R. B
  20.             this.meters = val * 1000;
    ) ^) T5 e2 b" c  I' V
  21.         },) D' v& V" R8 E8 b
  22.         meters : function (val) {' z2 P" {* K" j3 {6 j
  23.             this.kilometers = val/ 1000;. S. m+ p' s( L
  24.             this.meters = val;
    5 [" N# S3 |1 g8 D; s
  25.         }% ]6 n2 g" g  v! {
  26.     }
    8 [. @& Q9 h$ ?+ t% Z% F
  27.     });) }  K( ~7 @2 v+ z& p" @
  28.     // $watch 是一个实例方法+ K" @) C6 ?4 f- X: G- \1 z
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
      |8 ^9 S7 ?- a1 {8 b9 V
  30.     // 这个回调将在 vm.kilometers 改变后调用
    $ I  u+ p% W( B4 G- z2 ~+ l
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;6 {- I6 {0 W! I4 ^" f  L# D
  32. })9 F# g, |8 {, K+ o0 T3 z' {8 K" M3 s
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
- }  `# j) Q/ {! L
  m- o( D' o" T( h

9 ^8 P' p: x) f9 W& l9 I
# b" _4 ?, B9 ]0 V6 D/ G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 18:23 , Processed in 0.058853 second(s), 19 queries .

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