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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

' a( G. p7 K0 I1 l* G
本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化:
实例# P" n7 F: `3 o4 a& h

# \% p+ c6 @$ W, r; B4 o5 e
  1. <div id = "computed_props">
    . x0 Y+ @+ ~; Q0 O' X- D8 ~
  2.     千米 : <input type = "text" v-model = "kilometers">7 E: N5 A- k6 N4 l2 i4 G/ D: s
  3.     米 : <input type = "text" v-model = "meters">
    8 q' }- M: [& u7 x: V; r6 E7 U
  4. </div>
    $ D7 q+ k! K$ j7 C3 T
  5. <p id="info"></p>) T$ Q: {9 C: c: {
  6. <script type = "text/javascript">
    , l0 s5 `8 S6 B+ {- Q
  7.     var vm = new Vue({6 \3 Y  {# s) K
  8.     el: '#computed_props',
    " w5 V5 E6 r$ c8 @- L
  9.     data: {
    2 p& j  ]4 _8 a; L0 ]
  10.         kilometers : 0,2 ]: t2 H% X/ [1 t' `
  11.         meters:0
    4 i7 y+ H7 N1 o$ B& N) D9 r
  12.     },
    " K( Q. i# m/ S) C+ P
  13.     methods: {
      G" @$ d4 j* S
  14.     },; P8 H- ]: U" ~1 F' O
  15.     computed :{0 K* v# k8 Y' V
  16.     },
    ' @  g6 v" M: B% a
  17.     watch : {
    4 x/ R, E) @/ c8 g5 d
  18.         kilometers:function(val) {
    $ C4 _4 `2 n* C) k. q* L
  19.             this.kilometers = val;
    ; H# T5 I+ _! Y; J% O; E. ^
  20.             this.meters = val * 1000;) }4 t3 k6 J8 Z( ]4 {
  21.         },
    ( R$ y, w  [% J  l- A: j
  22.         meters : function (val) {; I  S- g5 u: Q# X: I2 a
  23.             this.kilometers = val/ 1000;
    6 Q* o( w" z( ^% t6 I6 j4 m
  24.             this.meters = val;, Q# f7 D) {/ `* t- {. N& ~
  25.         }" M+ R" q' m3 ~. a5 D
  26.     }4 b0 i0 @& f+ U" V0 M+ y4 s
  27.     });- t6 }; r, I  x! o3 z7 R
  28.     // $watch 是一个实例方法
    # s. ~4 j; d1 m  v4 V
  29.     vm.$watch('kilometers', function (newValue, oldValue) {
    ) ^7 g2 T, E) n& i3 {
  30.     // 这个回调将在 vm.kilometers 改变后调用
    ; p' n3 w2 K2 t0 O: I" E
  31.     document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
      h" {. y5 I2 l
  32. })
    6 w8 s- ?; k. y
  33. </script>
复制代码
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了两个方法 kilometers 和 meters。
当我们再输入框输入数据时,watch 会实时监听数据变化并改变自身的值。
7 D9 k( ^! v& @# C
" s# A& B8 }+ Q

8 z7 \( w5 l$ p) m' J/ Z. F$ |0 J. {/ ~/ |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 21:26 , Processed in 0.104171 second(s), 19 queries .

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