vue watch监听对象及对应值的变化详解


Posted in Javascript onFebruary 24, 2018

如下所示:

var vm=new Vue({
  data:{
    a:1,
    b:{
      c:1
    }
  },
  watch:{
    a(val, oldVal){//普通的watch监听
      console.log("a: "+val, oldVal);
    },
    b:{//深度监听,可监听到对象、数组的变化
      handler(val, oldVal){
        console.log("b.c: "+val.c, oldVal.c);//但是这两个值打印出来却都是一样的
      },
      deep:true
    }
  }
})
vm.a=2
vm.b.c=2

a是一个普通的值,当a的值变化时会被监听到,b是一个对象,不能直接像a那么写,需要深度监听才能捕捉到,但是当我想去捕捉b对象中某一个值的变化时却发现,打印出来的两个值是不一样的,如图:

vue watch监听对象及对应值的变化详解

这样就只能知道对象发生变化却不知道具体哪个值发生了变化,如果想监听对象某一个值得变化可以利用计算属性computed

var vm=new Vue({
  data:{
    b:{
      c:1
    }
  },
  watch:{
    newValue(val, oldVal){
      console.log("b.c: "+val, oldVal);
    }
  },
  computed: {
  newValue() {
  

return this.b.c
  
}
  }
})
vm.b.c=2

用watch去监听computed计算过的值就可以直接知道是哪个对应的值发生了变化,结果如图:

vue watch监听对象及对应值的变化详解

以上这篇vue watch监听对象及对应值的变化详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript window.opener的用法分析
Apr 07 Javascript
JavaScript中数组对象的那些自带方法介绍
Mar 12 Javascript
jquery中animate动画积累的解决方法
Oct 05 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
JavaScript中神奇的call()方法
Mar 12 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
May 09 Javascript
EditPlus中的正则表达式 实战(4)
Dec 15 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 Javascript
vue实现商品列表的添加删除实例讲解
May 14 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
Jul 24 Javascript
Element InfiniteScroll无限滚动的具体使用方法
Jul 27 Javascript
Vue3 Composition API的使用简介
Mar 29 Vue.js
解决Vue不能检测数组或对象变动的问题
Feb 24 #Javascript
vue将对象新增的属性添加到检测序列的方法
Feb 24 #Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 #jQuery
vue cli webpack中使用sass的方法
Feb 24 #Javascript
vue-cli常用设置总结
Feb 24 #Javascript
JS处理一些简单计算题
Feb 24 #Javascript
jQuery 改变P标签文本值方法
Feb 24 #jQuery
You might like
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
php异常处理方法实例汇总
2015/06/24 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
Python argparse模块使用方法解析
2020/02/20 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
Linux如何压缩可执行文件
2014/03/27 面试题
婚礼新郎父母答谢词
2014/01/16 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL