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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
* e0 \, @! I; J$ I& r6 p" `- a/ G
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
7 h; l, ]$ V3 U( {/ `% Z
5 c1 Q1 Z  d) E4 D0 A- N. k
  1. <div id = "computed_props">/ w- o) B9 _# `, F# o  p# w3 K
  2.     千米 : <input type = "text" v-model = "kilometers">$ \/ }; Q4 E1 l% a+ j
  3.     米 : <input type = "text" v-model = "meters">2 _* b/ {% t! S" ?/ c1 g  y* j
  4. </div>+ a/ Y( k* K/ G
  5. <p id="info"></p>
    " G1 t3 ~& Q& I) f3 Z" R* k
  6. <script type = "text/javascript">9 Y* a0 |2 o3 V4 k) c  I$ w* W! a1 I
  7.     var vm = new Vue({
    7 `5 R0 e2 `4 }8 R$ Z: b7 v
  8.     el: '#computed_props',9 m9 C0 O- k% s6 n
  9.     data: {6 m7 m1 g) \! X# A$ O& s6 _
  10.         kilometers : 0,  N1 x. _3 ~9 R, T# P
  11.         meters:0! @9 c; T* \- s# S0 M! T8 g
  12.     },0 @+ T' P2 a; X% U3 ~5 ?$ _
  13.     methods: {8 g/ M+ Y5 n$ i, e7 ^
  14.     },$ E  a2 E' A5 @$ Y' i
  15.     computed :{
    - K0 S# o* c0 Q& L) G7 j9 H
  16.     },. m' b; |- ?. I# w; S5 q
  17.     watch : {' j0 s) a& r- r% J) a0 R* P
  18.         kilometers:function(val) {
    9 Q; ]2 E) U$ [; t
  19.             this.kilometers = val;
    + I$ O. B+ f% X, \3 u
  20.             this.meters = val * 1000;+ `  e% B* H& `- ]/ \% j
  21.         },+ t+ |& W8 r3 ^* ?& G
  22.         meters : function (val) {
    5 y! x4 w4 M/ L2 R6 ~
  23.             this.kilometers = val/ 1000;
    & n. y5 U& z2 a* n- f" c0 L8 M* `
  24.             this.meters = val;9 _2 e9 x6 \* ~3 T4 x  w& N& S: e/ [
  25.         }7 v1 r  d3 a3 f3 L
  26.     }+ c$ s# `, x" a$ j9 t
  27.     });
    9 u- ]% w6 L" b
  28.     // $watch 是一个实例方法
    9 l+ @1 o4 H. _9 u6 G. V- D
  29.     vm.$watch('kilometers', function (newValue, oldValue) {4 r( H' k8 B, [. G2 i
  30.     // 这个回调将在 vm.kilometers 改变后调用
    & i5 w( [; [! d& G! S/ m
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    # D  ?: @3 E0 {0 n3 t2 i1 e
  32. })
    5 a( _. N( R2 {7 q  A9 S/ g
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

5 ~1 e! K8 ?/ W* B) W! ?5 m* _' o9 j' ~- o: T

( p3 p, Z1 o% q, `+ p% c& c
$ s( e  d0 M8 A) j- l  H& p2 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-23 02:35 , Processed in 0.121163 second(s), 20 queries .

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