cncml手绘网
标题: Vue.js 监听属性 [打印本页]
作者: admin 时间: 2018-7-4 11:05
标题: Vue.js 监听属性
d* ]5 q, g* v
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例. v4 s2 Z: u" }4 K4 O( W1 C
. A7 x ^3 [# {9 z. F0 L8 D
- <div id = "computed_props">
6 [/ e1 i- Y: Z+ f& t - 千米 : <input type = "text" v-model = "kilometers">
+ E7 Y' `8 Z* F0 E- N5 r* _; J# Q - 米 : <input type = "text" v-model = "meters">2 C' L4 u+ h& `4 F& l& r
- </div>. z! h4 m4 x. y) Y- Y
- <p id="info"></p>
0 X( W( i( B% c - <script type = "text/javascript">- W. L% n9 F+ I8 \* G) Z, e
- var vm = new Vue({
: K$ M, b3 q7 |2 U( Q& O6 U1 A - el: '#computed_props',
! C* B) K# M+ z- b3 a - data: {; N8 F9 g$ v& c2 l5 v2 p7 b
- kilometers : 0,
( [- r% j; w' {+ N; t } - meters:0
& A2 [ i7 X# ~: c8 s& ^ - },7 G! [, X# T6 B8 W0 x9 F
- methods: {
* P2 X+ M4 i8 i - },$ q5 X+ B. b2 R3 I9 v" v
- computed :{/ k0 E# h; T* J/ g( L( I6 `7 O
- },4 p2 ^9 p, _) `8 _
- watch : {* d# Z. V& }1 N5 h6 h- J% G& f
- kilometers:function(val) {" F/ w6 N2 a _5 D: y6 k
- this.kilometers = val;
* R; N5 @& L% r9 n; f! J) _) p) v - this.meters = val * 1000;
1 b$ c- e, | ^4 ~3 z# W - },
1 s5 I4 N5 u& q - meters : function (val) {; i T% L" a! }# \( h; P; V, |
- this.kilometers = val/ 1000;
% h9 o+ h$ P1 t$ ]+ e6 X - this.meters = val;& p: `! d; W' J5 h8 W* ]
- }, m1 N8 l: ?0 q" M1 x
- }
; v; z% X3 {# [; u- @+ f$ j, l - });
0 i! N2 l" ]0 e" e: C8 b - // $watch 是一个实例方法. _, i) X2 E' U# I; n# Q/ `
- vm.$watch('kilometers', function (newValue, oldValue) {$ s! w1 H/ f. h
- // 这个回调将在 vm.kilometers 改变后调用9 }/ W- V ^6 |, P: k& E
- document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
. T; k9 Z( @ {& |9 Y- T3 F - })" v' W) ?% b- \- e0 }5 n3 q# t3 }
- </script>
复制代码以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
3 q V/ M$ a0 O3 L* E8 |
2 c# }( u5 U9 V U
; D) t$ h$ P" R. M' H+ ?7 t+ p9 T8 A) r7 s
欢迎光临 cncml手绘网 (http://www.cncml.com/) |
Powered by Discuz! X3.2 |