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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
4 L: b3 q* h% s% w7 z: \* C
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
, h; r4 a8 |0 o- h: O8 D
' D0 _' N3 R! k+ \8 k9 `: F$ j" ^
  1. <div id = "computed_props">6 y$ ]# _* G& D
  2.     千米 : <input type = "text" v-model = "kilometers">2 G8 Q9 r% l0 d8 k. M; e
  3.     米 : <input type = "text" v-model = "meters">
    & P# l! O+ x. N* U
  4. </div>1 e7 Z9 R- K" _
  5. <p id="info"></p>/ ]4 @* x7 e; J  c" `( M! ?
  6. <script type = "text/javascript">
    , N/ \: P$ |2 s7 M) n
  7.     var vm = new Vue({1 }/ e* U9 v# x1 b1 |$ t- B' @
  8.     el: '#computed_props',  R! B4 [9 W. |( t0 O) e7 d. `! |. G
  9.     data: {
    ( D0 ]8 ^9 y8 }2 B$ o) f
  10.         kilometers : 0,
    8 u; v$ e+ L7 c" T6 i0 f0 m
  11.         meters:0
    9 T( W4 `. n) t2 d/ x8 Z
  12.     },
      q" G! R. a& y
  13.     methods: {
    0 z, J' |2 G; e9 H4 P; g& N5 U
  14.     },
    4 H6 k1 r6 d- S* N1 V
  15.     computed :{
    ( B) b. r7 ^& ^. Y* T
  16.     },  r, m: P! T; i
  17.     watch : {
    6 e: r( s( I; U7 s" b! A( \4 Q+ i  J4 u
  18.         kilometers:function(val) {
    1 w$ E+ T' n" V; Y
  19.             this.kilometers = val;
    - A  V3 y" g( i- O/ E
  20.             this.meters = val * 1000;
    6 v* ?7 T' I: q7 F
  21.         },2 ?, Z1 S8 F# i9 F% _9 N+ C4 ~2 Y# `
  22.         meters : function (val) {
    + m# p, Y2 Y4 D: U3 l
  23.             this.kilometers = val/ 1000;
    # h; Q: Q: R% Y( }8 U& g( C
  24.             this.meters = val;
    ) D" f$ |5 D( s: P" y
  25.         }: U3 {# n4 B9 |- a/ s9 Y+ y
  26.     }
    % E$ l( e8 z& b# O: {
  27.     });
    5 F- t& J" f+ c2 d" E
  28.     // $watch 是一个实例方法
    ; l/ k; o: B' g- y/ r0 \
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    % d* o. ]- |) F
  30.     // 这个回调将在 vm.kilometers 改变后调用
    ) Y$ D- @; r  ~4 S' G. ?% @
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    4 ]5 P. z% }5 G$ B* _) B
  32. })( A( w9 b+ ]0 Q! h* b; _) F
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

& N/ q2 ~9 ^- h$ [6 p! Y$ C; d/ Y, v" S2 ^. o
% H' ~8 E; y) L" u( \* v
3 _1 `' U% r) f- Q: H+ n+ O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 14:27 , Processed in 0.052915 second(s), 19 queries .

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