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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:05:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

6 ?$ S0 z# Q+ Q5 D$ }; y
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例/ `. Q( k( H3 F; f, M
/ n2 n4 g- ?  G! k
  1. <div id = "computed_props">
    3 R2 L' c, o5 D  D5 `& ^# O1 C  a
  2.     千米 : <input type = "text" v-model = "kilometers">
      D0 M& H7 g8 P
  3.     米 : <input type = "text" v-model = "meters">
    9 d( z4 \! Z' F$ Q1 V, ?
  4. </div>! Q; ~, X- \7 Z) |! M
  5. <p id="info"></p>
    8 Q( U) a! L! B5 A& C4 P
  6. <script type = "text/javascript"># N% N8 O  ^& S, z2 ^' v- z
  7.     var vm = new Vue({3 Z' \" B, i( i( B1 [8 g+ X2 C
  8.     el: '#computed_props',0 m  c8 M' D- Q% M/ ~0 U% L: D
  9.     data: {
    3 I3 m, q8 S/ R1 `8 g' r1 H8 s9 ~3 ^
  10.         kilometers : 0,: `+ \5 D# @% P; p! f
  11.         meters:0
    . C# A& g: K5 D1 E0 i
  12.     },
    - ^2 J" S. r6 C: `
  13.     methods: {8 m, i) \- F- Q
  14.     },
    + B, v0 e8 ~; f7 \7 U: }, \
  15.     computed :{% j6 m: t4 j/ S* C1 r
  16.     },
    / d; m" x( s% t6 X4 T, ~  E
  17.     watch : {. n6 {* ?; H2 P( F5 C4 ]
  18.         kilometers:function(val) {
    , T) f+ K" [7 E9 }; M. \0 B8 O
  19.             this.kilometers = val;
    $ L5 i. A. d+ E
  20.             this.meters = val * 1000;
    ( ~& G" V' A5 a, `4 I$ ?5 j/ E
  21.         },: f# f7 \; A, O2 `
  22.         meters : function (val) {
    # x3 R+ ?9 S5 o% i
  23.             this.kilometers = val/ 1000;
    3 k) F; A2 r. k! V& f
  24.             this.meters = val;
    . b1 G4 |! Z. H4 b
  25.         }5 ~1 Q% A& N' Q" l
  26.     }3 W5 h1 P% W8 V- t/ s
  27.     });8 e2 Q( o9 b$ Y& t
  28.     // $watch 是一个实例方法
    1 V% T+ z/ B2 [  r
  29.     vm.$watch('kilometers', function (newValue, oldValue) {2 ^7 O) p6 d% W  K! Z
  30.     // 这个回调将在 vm.kilometers 改变后调用% l5 m, O! N( ^
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    ) ^' T* p9 ~! s7 e! `) B* R# C9 D
  32. })* a2 q* [$ b0 R. D
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

/ ?. @8 z8 p" Z$ P+ T+ l) J' l2 x% a! t& [
5 s9 b, V3 M( t  b* O: s8 N

9 V9 L& H  t: m6 w+ [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-7-19 15:50 , Processed in 0.065273 second(s), 19 queries .

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