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 相关文章推荐
兼容FF和IE的动态table示例自写
Oct 21 Javascript
JavaScript如何禁止Backspace键
Dec 02 Javascript
基于JavaScript实现类似于百度学术高级检索功能
Mar 02 Javascript
正则表达式(语法篇推荐)
Jun 24 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
Nov 01 Javascript
js+css3实现旋转效果
Jan 20 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
Jan 21 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
vue使用el-upload上传文件及Feign服务间传递文件的方法
Mar 15 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
如何用JavaScript检测当前浏览器是无头浏览器
Apr 27 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
跟我学Laravel之路由
2014/10/15 PHP
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
Python实现的计数排序算法示例
2017/11/29 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
keras 多gpu并行运行案例
2020/06/10 Python
python动态规划算法实例详解
2020/11/22 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
党校培训思想汇报
2014/01/03 职场文书
食品安全检查制度
2014/02/03 职场文书
优良学风班申请材料
2014/02/13 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
春风行动实施方案
2014/03/28 职场文书
婚假请假条怎么写
2014/04/10 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
十八大标语口号
2014/10/09 职场文书
GPU服务器的多用户配置方法
2022/07/07 Servers