cncml手绘网

标题: Vue.js 监听属性 [打印本页]

作者: admin    时间: 2018-7-4 11:05
标题: Vue.js 监听属性
+ i6 d6 l5 A4 b- x* o6 A
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例  z! N1 a0 L! Z

& U9 o( ~& A3 g
  1. <div id = "computed_props">
    ' c1 n1 R% N% g) `6 j
  2.     千米 : <input type = "text" v-model = "kilometers">
    / E& F; ?( S7 z4 ^7 _' c3 Z
  3.     米 : <input type = "text" v-model = "meters">8 H& }- T( g) C7 N* B2 F" T
  4. </div>0 u0 t$ d6 E( f
  5. <p id="info"></p>
    1 r. y" i- C- r
  6. <script type = "text/javascript">
    ( `6 I- K& @* B9 Z' I7 r
  7.     var vm = new Vue({  H' b5 z' P( U" O& w
  8.     el: '#computed_props',* u( P5 w3 e4 [# C
  9.     data: {+ Z, E& _5 B( ^0 E
  10.         kilometers : 0,6 o; w& M. r% x1 ?! B2 D
  11.         meters:0
    ! P. A- n' ^$ U" `) J6 H
  12.     },* N5 P; j4 S5 P% B2 M
  13.     methods: {
    % S* Z/ ^. d9 K2 J( Z
  14.     },
    : j( }: M- Z( j: z% `! O
  15.     computed :{
      {: I; t- I+ Y( u; B
  16.     },
    . P& |: _# L; C" T- L
  17.     watch : {
    . C) ]7 m# w/ c0 Z. J
  18.         kilometers:function(val) {
    6 A0 c5 i9 H1 f! x1 `, I* I
  19.             this.kilometers = val;( ^7 H& E( ~% N' A- r& q- A
  20.             this.meters = val * 1000;' |1 i! T, @: o' b/ V, {6 q# _
  21.         },* }5 G- J3 N) `/ r& g# O
  22.         meters : function (val) {2 Z7 F/ W! O! b
  23.             this.kilometers = val/ 1000;( \( B! j2 u" G  N5 }
  24.             this.meters = val;
    ' M5 \" ~# N3 W
  25.         }8 V/ ]4 ^$ z! b  ~
  26.     }
    1 _' n  `: ]. d; g
  27.     });, m( b; p4 J7 b9 F- Q2 ^! t
  28.     // $watch 是一个实例方法1 z6 n+ a; u0 x( M) I# k
  29.     vm.$watch('kilometers', function (newValue, oldValue) {  \( h1 Y3 r4 H6 P+ ^( j" Y+ e
  30.     // 这个回调将在 vm.kilometers 改变后调用1 ]$ ]7 w+ B0 D/ ?/ f9 y6 |
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
    % M% P5 Y% T$ o
  32. })
    9 c6 `3 R/ m  g4 ?7 B8 ~
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。

$ e% v! o9 Z) m; r( a% |, p: H8 u  F; \. }3 ~6 V. |

7 s& {0 D  o7 H& Y* V/ ]2 N6 k
% Q3 d8 p+ Z3 }. B& G: g* E




欢迎光临 cncml手绘网 (http://bbs.cncml.com/) Powered by Discuz! X3.2