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实现的类似Google的Div拖动效果代码
Aug 09 Javascript
鼠标滑在标题上显示图片的JS代码
Nov 19 Javascript
js通过元素class名字获取元素集合的具体实现
Jan 06 Javascript
JS版的date函数(和PHP的date函数一样)
May 12 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
浅谈Javascript中深复制
Dec 01 Javascript
关于js函数解释(包括内嵌,对象等)
Nov 20 Javascript
ajax接收后台数据在html页面显示
Feb 19 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
纯JS实现简单的日历
Jun 26 Javascript
vue中监听返回键问题
Aug 28 Javascript
Jquery $.map使用方法实例详解
Sep 01 jQuery
解决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的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
在Django的session中使用User对象的方法
2015/07/23 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
全球性的在线购物网站:Zapals
2017/03/22 全球购物
C#笔试题集合
2013/06/21 面试题
类的返射机制中的包及核心类
2016/09/12 面试题
教师自我反思材料
2014/02/14 职场文书
师范生自我鉴定
2014/03/20 职场文书
大学生求职信范文
2014/05/24 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
工作会议简报
2015/07/20 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
MySQL读取JSON转换的方式
2022/03/18 MySQL