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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
; u7 l3 }  W& N; ^3 U9 j; _
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例4 u- a+ U9 R# ]2 L0 o
/ M% ?; P0 F. U" U/ |
  1. <div id = "computed_props">
    5 E+ ^; v1 ^: B5 a
  2.     千米 : <input type = "text" v-model = "kilometers">! }- |9 O+ p8 _& J8 h
  3.     米 : <input type = "text" v-model = "meters">& G2 m+ ~$ ^0 ?- Y0 l8 s. U
  4. </div>& m! L% v( ]& H4 |
  5. <p id="info"></p>
    8 Q8 u! A9 O( M9 \% v! o4 F( R
  6. <script type = "text/javascript">
    1 A; ~+ s. {& g- O8 A% }
  7.     var vm = new Vue({
    $ Q3 A6 n4 P$ ~& H" t" |+ k4 ^
  8.     el: '#computed_props',
    * p( c+ K9 C, W6 X& f, ]
  9.     data: {
    4 x0 p' K6 b# R* ^. {9 j
  10.         kilometers : 0,
    ; v- {" T8 g6 [" r7 `' O
  11.         meters:0( a+ J, s  t' E- H. \, n) F
  12.     },
    9 z! `. g  c" ^' W; x
  13.     methods: {
    7 o& s% P/ O  L: _& e
  14.     },
    . J) `' O9 f3 J+ W0 C' n
  15.     computed :{
    ( v4 c9 c& B, v' O2 ^: c" ]
  16.     },; x- i. m4 K, j! p1 r' }2 E
  17.     watch : {
    " \5 }3 F$ Q/ V8 |, j
  18.         kilometers:function(val) {: H. }  a/ N4 m
  19.             this.kilometers = val;
    $ o( \+ P/ ~5 _4 H6 u) u: E" t, |
  20.             this.meters = val * 1000;
    / z3 L" ~5 e* z, f& g! B. E
  21.         },9 }6 D5 a% B5 F' [
  22.         meters : function (val) {$ P! P$ A6 z0 L
  23.             this.kilometers = val/ 1000;( n) Z. a8 X' S) @
  24.             this.meters = val;. r( y" _$ Q7 H, @+ ?9 u7 P% K
  25.         }
    + t0 s0 W9 C( W  b
  26.     }8 }; l3 M5 G& c) I/ O( W0 w
  27.     });4 N' H8 @* @  [3 e& y6 |
  28.     // $watch 是一个实例方法# j6 q* `# w3 k
  29.     vm.$watch('kilometers', function (newValue, oldValue) {3 Z" V. @/ D3 |" K8 \" s
  30.     // 这个回调将在 vm.kilometers 改变后调用
    * N" ~! b9 E6 e4 I) D4 P8 ^3 j
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;0 }9 O+ y) U0 K6 l
  32. })
    0 q/ s! d$ a1 i# T: ], ?2 C" I6 w
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
' H- J0 a# s3 T* v5 v+ [
4 V1 j2 x8 U6 M8 F7 U6 }) K& a- Z
3 E( [; h( Z9 b7 A: k4 u
- B& [* u' p8 I7 }# w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 08:12 , Processed in 0.060318 second(s), 21 queries .

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