Vue使用watch监听一个对象中的属性的实现方法


Posted in Javascript onMay 10, 2019

问题描述

Vue提供了一个watch方法可以让使用者去监听某些data内的数据变动,触发相应的方法,比如

queryData: {
   name: '',
   creator: '',
   selectedStatus: '',
   time: [],
 },

第一种解决方案:直接对象

现在我需要监听这个queryData,我可以这样做:

watch: {
   queryData: {
     handler: function() {
      //do something
     },
     deep: true
   }
}

第二种解决方案:deep

里面的deep设为了true,这样的话,如果修改了这个queryData中的任何一个属性,都会执行handler这个方法。不过其实这样开销是蛮大的,尤其是对象里面结构嵌套过深的时候。而且有时候我们就想关心这个对象中的某个属性,比如name,这个时候可以这样

watch: {
   'queryData.name': {
     handler: function() {
      //do something
     },
   }
}

第三种解决方案:(computed+watch)

或者还可以这样巧用计算属性

computed: {
  getName: function() {
    return this.queryData.name
  }
}
watch: {
   getName: {
     handler: function() {
      //do something
     },
   }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。 

Javascript 相关文章推荐
用一段js程序来实现动画功能
Mar 06 Javascript
JQuery 确定css方框模型(盒模型Box Model)
Jan 22 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
javascript对象的使用和属性操作示例详解
Mar 02 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
深入理解vue中的$set
Jun 01 Javascript
jQuery、layer实现弹出层的打开、关闭功能
Jun 28 jQuery
一起写一个即插即用的Vue Loading插件实现
Oct 31 Javascript
vue项目打包之开发环境和部署环境的实现
Apr 23 Javascript
浅析我对JS延迟异步脚本的思考
Oct 12 Javascript
浅谈Ant Design Pro 菜单自定义 icon
Nov 17 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 #Javascript
jsonp实现百度下拉框功能的方法分析
May 10 #Javascript
微信小程序用户授权,以及判断登录是否过期的方法
May 10 #Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 #Javascript
Angular4.0动画操作实例详解
May 10 #Javascript
Angular 2使用路由自定义弹出组件toast操作示例
May 10 #Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
May 10 #Javascript
You might like
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
Pytorch中.new()的作用详解
2020/02/18 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
教师现实表现材料
2014/02/14 职场文书
珍惜资源的建议书
2014/08/26 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
java版 联机五子棋游戏
2022/05/04 Java/Android
MySQL数据库表约束讲解
2022/06/21 MySQL