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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/ j1 \6 |% X% L$ e5 u
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例$ s" b& L7 X  k6 v, w# w/ `
% g0 d* |% Y9 A" B% E; f0 I
  1. <div id = "computed_props">; t* e( M9 N- r7 P1 C
  2.     千米 : <input type = "text" v-model = "kilometers">
    # g  `( j, t& F) W4 [
  3.     米 : <input type = "text" v-model = "meters">
    $ [5 K( r  }" {
  4. </div>
    5 Q; ]5 ]8 X! H& I& K& G% n% a
  5. <p id="info"></p>
    8 H3 W( a. G1 n0 C
  6. <script type = "text/javascript">
    ' I% P3 @) N) ?
  7.     var vm = new Vue({
    0 P. W/ z" `" a$ o7 h( j6 S
  8.     el: '#computed_props',
    . i/ U6 [+ e7 f) o5 S# g7 z
  9.     data: {
    / s- [6 f$ V2 l9 z: i, d& t. U
  10.         kilometers : 0,
    % G% B6 m6 C: @
  11.         meters:0
    . F% A9 K$ S- N9 v
  12.     },) W; r# z0 _" \) d
  13.     methods: {
    , o, F3 o  ~! h2 G( q' v
  14.     },
    / S% A) y  P4 K7 g
  15.     computed :{
    . Z' x) C+ h3 I5 R# Z
  16.     },0 f. Y3 F- _, P1 H* l6 Y) R
  17.     watch : {5 v; d9 u2 G: k5 W; r, w* l
  18.         kilometers:function(val) {
    . J+ ~) a( E" w* Z
  19.             this.kilometers = val;
    ; B, `4 n% T9 m& m
  20.             this.meters = val * 1000;8 t/ S: B, _6 m
  21.         },# I6 v- C' V- {
  22.         meters : function (val) {  G: z3 ^1 C0 N) a  l
  23.             this.kilometers = val/ 1000;6 ~" z" ?2 O8 P$ G; G: O- v
  24.             this.meters = val;
    7 P& h' U4 V( C! j  l
  25.         }
    3 ^! V5 c/ ^# t% c' z
  26.     }2 a- U4 k  g% U: `9 Y! E6 u
  27.     });+ F9 f, ?$ g+ G8 S' @
  28.     // $watch 是一个实例方法* J' u2 @" ~9 m
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    5 j' O: W9 z1 }, P$ G% m/ z
  30.     // 这个回调将在 vm.kilometers 改变后调用' H- }' l% T% D5 F3 D
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    9 _0 Y7 n7 {+ e1 Y
  32. })
    . W5 J/ M4 H- n1 V; b* s
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
% g' n/ q' e5 J# O, w2 P

; n6 N3 |; L/ v# [3 K
' g4 \, Q( s0 L0 e" {3 E: q
9 d2 Q  V3 M& Y4 b+ m& |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-9-28 10:17 , Processed in 0.131206 second(s), 21 queries .

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