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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  d. r  N! u+ X- w% M
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例
5 ]# G/ k1 H$ K! z1 F
+ f4 o$ ~! X) ^& P
  1. <div id = "computed_props">
    / p# @* t5 V  l( L9 r
  2.     千米 : <input type = "text" v-model = "kilometers">
    8 V0 M% @0 j& j# Z
  3.     米 : <input type = "text" v-model = "meters">
    2 k$ b0 P4 F- z* W6 N+ j) `
  4. </div>) O% U+ |( p0 N3 m
  5. <p id="info"></p>4 T5 ^0 A3 `* S# L! Y
  6. <script type = "text/javascript">
    , ^/ g. t- [3 S* k: U1 H2 A$ C5 z
  7.     var vm = new Vue({
    ( _( h( |2 J/ ?& D3 `
  8.     el: '#computed_props',/ \$ ~6 y4 H% m4 F3 W/ x
  9.     data: {8 n$ C5 j1 A& i. a. z
  10.         kilometers : 0,
    ( r( t. _/ A7 P$ M  e: M
  11.         meters:0
    + ?0 i2 Z1 B+ d
  12.     },
    $ E" n& S4 O7 \0 T3 W: h
  13.     methods: {
    $ v* p; `2 m9 b
  14.     },
    7 \6 t# f! d, h: u# s
  15.     computed :{
    9 T5 u' ]. T  D! C- Q
  16.     },
    1 k) s2 a  Z$ t' l: H  t* `
  17.     watch : {
    1 M, X: |. a$ S# p
  18.         kilometers:function(val) {
    / p0 ?7 z' m. R6 \/ s+ u# d/ {) j
  19.             this.kilometers = val;
    - N4 Y) ^5 G2 I1 o: L
  20.             this.meters = val * 1000;: }: x7 ]' Z6 D" _9 o# }
  21.         },7 g1 T4 y8 ^. Z1 M7 ~$ B. `1 ~
  22.         meters : function (val) {$ D! L+ {; c, b! m1 ^* u
  23.             this.kilometers = val/ 1000;9 n7 E0 F/ a# I' u
  24.             this.meters = val;/ Z  H* W* i: f/ w. S
  25.         }
    4 I. ^( i+ s& T- b' K2 h1 V
  26.     }/ j5 M* p# z1 k. \. h
  27.     });& k( A. d! p) Q4 g1 C. `1 X6 B
  28.     // $watch 是一个实例方法" s" m. X0 h; N$ {, p: k
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    ! C" E; p: s4 v, A/ a
  30.     // 这个回调将在 vm.kilometers 改变后调用2 C6 C: y/ Q7 @) c" l
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;) g4 o5 d6 a* {( O- I0 F6 Q
  32. }); N# \4 K& Z) N. Y' R
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

2 Q0 N) Z. h  U  F7 c5 J* G- {
3 E. I. _, ^+ m, N% i7 e% [- k" ?/ M4 T: E
0 j5 l3 B7 F9 n5 O# h7 A" v) j9 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 03:05 , Processed in 0.049963 second(s), 20 queries .

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