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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
) ]! i- B" w: E0 V3 F
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
& _' j0 `; Z/ L5 P( ^; Y2 t5 w8 P( U
  1. <div id = "computed_props">: D4 a9 K( q) G9 Y& |( p2 x
  2.     千米 : <input type = "text" v-model = "kilometers">; S" V" Z! E, [1 n1 T6 I0 H9 ?+ X
  3.     米 : <input type = "text" v-model = "meters">
    ! y( H1 |8 K$ _3 X5 z2 V
  4. </div>2 P8 R! @7 o3 e! K3 Y
  5. <p id="info"></p>
    0 _% _/ J( O# P* }) \
  6. <script type = "text/javascript"># W" \9 `" |9 E* j, r' }7 G% Z
  7.     var vm = new Vue({
    ( P- h! B3 w9 ]% J# @8 h% _
  8.     el: '#computed_props',
    $ B. a1 O& q$ v0 D, N  S! k
  9.     data: {# z; F/ \6 S' F; m+ q3 K* L0 A/ K9 c5 C
  10.         kilometers : 0,. e; l2 [6 S' K% E
  11.         meters:0
    6 _8 _; I6 u' K, U5 M; K
  12.     },/ f' K2 D/ e9 n2 x! R9 I
  13.     methods: {
    ) }: ]. o" [) {" I) {3 A' K
  14.     },
    9 F" x! J) L) q& W, G3 f* p
  15.     computed :{
    + U9 c% ]" r: v% a, y0 u2 Z
  16.     },
    4 X7 F7 c1 g  R4 L# I% H
  17.     watch : {
    % H; I7 F  b! _7 l; l* B
  18.         kilometers:function(val) {: k/ g% s. e+ X
  19.             this.kilometers = val;; f; Q& _! d" x- U+ k- W2 x
  20.             this.meters = val * 1000;4 }+ f# \" j* D
  21.         },& \' Q' [9 P1 `
  22.         meters : function (val) {
    3 Z* H! b6 \: q) f
  23.             this.kilometers = val/ 1000;7 p3 C) G( V  F9 z
  24.             this.meters = val;. G$ }2 p/ o$ J. Q
  25.         }# j  D6 c7 V) @
  26.     }' q" Y( h& C# B" ]3 Y8 r
  27.     });
    - x' c; G! s2 Q7 H. Y& P2 T* w3 [
  28.     // $watch 是一个实例方法& t2 h! S* u/ ~( h% X
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    + N6 F, Q; y! i, k
  30.     // 这个回调将在 vm.kilometers 改变后调用% U# e9 N, y$ z, [
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;+ i- i8 I1 j. H( a
  32. }); E" B% i; h" V8 V- b5 U" g* Y
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
* P2 j1 s2 D0 Z- F) G( c
! o) m0 q0 P9 j
4 T% J& D& I" c/ s
1 h3 t) {* D0 {$ o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:51 , Processed in 0.056279 second(s), 20 queries .

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