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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

0 g3 c: i3 g/ ]" ]$ S# T
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例" P( T4 U2 j" x: O, d& B2 C" G

* ?0 I$ H* m0 s4 [
  1. <div id = "computed_props">, n2 [2 O7 E# U- @% a; J
  2.     千米 : <input type = "text" v-model = "kilometers">8 z/ o, B0 j5 B! Z
  3.     米 : <input type = "text" v-model = "meters">, l* a$ z$ e2 D' x3 G  s$ v/ q
  4. </div>* Y$ N0 i2 ]! f4 c) A# i/ l
  5. <p id="info"></p>- l; ^+ i% e" g; j# f0 i
  6. <script type = "text/javascript">. e' j! q) c2 |7 x8 I' l  |
  7.     var vm = new Vue({
    ! O( I) G7 z9 t  G) T% \
  8.     el: '#computed_props',
    0 i/ P5 q, e1 Y0 j! z  f5 A
  9.     data: {; \9 j- b; f/ K! h7 |1 O, W# K& A
  10.         kilometers : 0,
    ) Z! C* D' l7 D- p% m5 J
  11.         meters:0% P. i0 N$ q2 ~7 V9 U; ]
  12.     },
    , i1 l9 p$ W& A5 I+ x' I
  13.     methods: {
    : a6 D  h! ^$ {5 ]8 Q* c  h$ X
  14.     },, u4 W& o, Q8 [3 ^9 [) s" R8 L, C: `
  15.     computed :{, p. X0 n5 B! g+ l; x( a% @. f
  16.     },
    7 R$ h  K1 j% `& R: g: q
  17.     watch : {* ~& P# P( C+ X& d* d
  18.         kilometers:function(val) {' A: s6 ^. N' Z0 o9 k. Z
  19.             this.kilometers = val;' l9 z6 k- f' T. N/ W9 R0 s
  20.             this.meters = val * 1000;" Z. w. k0 {. t1 x, C& l% z) Q, @
  21.         },
    ) x# @& e1 d! v0 W: X, W
  22.         meters : function (val) {
    ) x. u" H7 v. V& X
  23.             this.kilometers = val/ 1000;
    0 u8 l' O* w* T5 L2 x
  24.             this.meters = val;
    0 `- B6 V) N1 Z
  25.         }9 Q8 O$ A. I5 P
  26.     }4 {+ J# }0 x2 X" a7 ~9 n$ b
  27.     });# w8 e/ y, [: V4 I) [' A, o
  28.     // $watch 是一个实例方法
    " `9 U/ E$ @% V
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    2 n6 U( I/ C. v- n3 I  y$ `/ u
  30.     // 这个回调将在 vm.kilometers 改变后调用; Z- q, [. g' W
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;( Q; F3 z  ^6 T' X6 U. Q: _, Q" L
  32. })
    ( E# q5 m9 [) Y, x3 S8 L
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
$ d& P0 K! R4 ^. K# j. O
3 U9 @' h% s6 Q
* p" B2 M( k- r

3 b3 M# D0 I2 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 00:01 , Processed in 0.061371 second(s), 21 queries .

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