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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3 h0 E  _* t& F: ]. x& H" z, B
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
& L1 ?5 r  T' j* S4 ]7 Z4 c4 [- b3 F8 D/ y
  1. <div id = "computed_props">
    * @. v+ r% R* L/ [
  2.     千米 : <input type = "text" v-model = "kilometers">
    2 b" O! Q2 l, n/ C+ f# q0 d  J
  3.     米 : <input type = "text" v-model = "meters">! k% S7 t( ]0 ~/ q% Q8 E
  4. </div>
    # x; k( ^- j% g  q5 U$ h$ L
  5. <p id="info"></p>' H  g7 A  `& h( {8 g
  6. <script type = "text/javascript">
    & E5 X4 ~: X$ x: o2 a0 c* n
  7.     var vm = new Vue({
      W( y/ J& y. R' l* N8 i
  8.     el: '#computed_props',9 ~( c: e2 N; D' W
  9.     data: {
    % A' [6 i( x( B: p7 r! m
  10.         kilometers : 0,
    ! C. ?$ h& p1 E6 n  A" M
  11.         meters:0
    # M4 u1 H+ K! m& A# @* Q, n3 m
  12.     },
    0 B- @* L* J" m
  13.     methods: {
    * \( _: s( d& w, o9 d1 A
  14.     },4 t$ d0 I2 X1 C$ c0 a# {5 p! H
  15.     computed :{% E1 X9 `  w3 V& w; x
  16.     },
    ) U2 C6 k+ p8 n, o  E
  17.     watch : {
    , x. G; v3 Y( v6 ^5 O! I
  18.         kilometers:function(val) {1 V* m1 [5 m% a2 X* S0 ]
  19.             this.kilometers = val;+ A2 A* J- [* `% d2 G" _
  20.             this.meters = val * 1000;
    ( F3 S4 [' }0 O' ?# s; J
  21.         },7 L1 ?8 n& m9 |) J' N
  22.         meters : function (val) {( u3 K  C# g, x2 u9 D
  23.             this.kilometers = val/ 1000;
    , `' u9 S4 t# y! A
  24.             this.meters = val;8 e" S$ P8 q. T4 m3 J% ~6 d
  25.         }. B, f5 a' e3 ^, I8 `
  26.     }
    7 _' w+ F1 n5 D9 w* X7 @% \
  27.     });
    , j# n9 Z, v: i: H0 Z
  28.     // $watch 是一个实例方法/ J( x6 V) }2 _* x6 G
  29.     vm.$watch('kilometers', function (newValue, oldValue) {7 _$ C, S7 S7 m9 Z" X" Q
  30.     // 这个回调将在 vm.kilometers 改变后调用, P% f. C4 p: R: t$ R3 X
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;  l: A5 R2 ?, p0 ~' O' Q& s, v1 i
  32. })
    ; l% D. j2 B2 V( g; |
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

) o  P8 L; K' _9 L) f& _) N' D9 I/ `

' t# y7 ]1 g# x' |9 T" X6 P
/ C( p3 Z/ p, p7 V& W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 14:31 , Processed in 0.055763 second(s), 19 queries .

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