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 文件大小判断的实现代码
Apr 07 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
Sep 26 Javascript
jquery实现多级下拉菜单的实例代码
Oct 02 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
Bootstrap每天必学之折叠(Collapse)插件
Apr 25 Javascript
js判断某个字符出现的次数的简单实例
Jun 03 Javascript
Three.js学习之正交投影照相机
Aug 01 Javascript
BootStrap使用file-input插件上传图片的方法
Sep 05 Javascript
浅谈JS之iframe中的窗口
Sep 13 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
JavaScript中变量提升和函数提升的详解
Aug 07 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
MySql中正则表达式的使用方法描述
2008/07/30 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
PHP微信API接口类
2016/08/22 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
toString()一个会自动调用的方法
2010/02/08 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
python实现图片文件批量重命名
2020/03/23 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
python assert的用处示例详解
2019/04/01 Python
Python中format()格式输出全解
2019/04/12 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
建筑文秘专业个人求职信范文
2013/12/28 职场文书
抄作业检讨书
2014/02/17 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
激励口号大全
2014/06/17 职场文书
2014年业务工作总结
2014/11/17 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
初中历史教学反思
2016/02/19 职场文书
关于MySQL中explain工具的使用
2023/05/08 MySQL