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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2 k) j" \" ^: e4 m
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
. z: |+ f' B( V& o
/ h. {. a7 b/ w5 R
  1. <div id = "computed_props">+ d0 g  x0 m7 Q6 m! p. `
  2.     千米 : <input type = "text" v-model = "kilometers">7 T) W( E; |/ {
  3.     米 : <input type = "text" v-model = "meters">" m! Y% u$ h2 S! g3 L& v
  4. </div>8 j3 K: h6 p4 O/ h2 x+ F( i
  5. <p id="info"></p>
    # h% Z" h+ C9 \; T5 z
  6. <script type = "text/javascript">- ~0 q% A4 ^, i$ c* I& a& J
  7.     var vm = new Vue({; B' ]7 R4 X- [( N& C
  8.     el: '#computed_props',& [) V. E/ z, v5 D  L/ {
  9.     data: {
    6 {; h2 b0 o5 t3 x- P% Q! L
  10.         kilometers : 0,
    $ j9 `: i- j  q$ F6 Z5 w; l
  11.         meters:02 y' [5 c% F( W# ^2 v
  12.     },
    $ s; `+ U: N. M7 v
  13.     methods: {9 d* ~+ U+ m2 t2 l+ o
  14.     },( E) X% S" Y( s: M- H# C- y8 U
  15.     computed :{
    ! U, h) s0 U# {: T+ m/ l7 u  h
  16.     },
    , o/ S8 L0 |. h% x4 ]
  17.     watch : {8 S& m( n6 _; [
  18.         kilometers:function(val) {
    # G: `$ e/ u( C/ u4 ^, R
  19.             this.kilometers = val;
    " M. l  p$ z! c! A* v+ o
  20.             this.meters = val * 1000;
    % R5 T# D5 w/ E6 w% N4 D, ?) t
  21.         },
    7 F, V8 L+ c1 @6 [( Z
  22.         meters : function (val) {, _3 z0 X3 t4 W
  23.             this.kilometers = val/ 1000;
    ! G1 S# A( z* ], Q4 U! w
  24.             this.meters = val;1 I0 M! W! k4 A3 R! m7 y
  25.         }: e  `- x- O. P* M2 a( T3 N1 E7 O
  26.     }1 `) q, V7 K4 }+ E
  27.     });
    : ~" X, s; W0 [& H8 ]# H, z$ x
  28.     // $watch 是一个实例方法
    5 w" R, X1 j! I
  29.     vm.$watch('kilometers', function (newValue, oldValue) {$ w1 n* l+ B& d; ^. F' i
  30.     // 这个回调将在 vm.kilometers 改变后调用
    & h) L1 @, I( A% P
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;* w; A. }, t" K0 y' K6 Q
  32. })
    $ L) T! {: f) F* Y2 n( ?6 d7 S
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
  P/ D3 G/ A, V# V
* ~; R7 o+ A1 M- K+ _4 K! a1 K/ u

9 N+ G1 b* {; _. N
# d* |: d% L# p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-4 23:18 , Processed in 0.099522 second(s), 19 queries .

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