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 相关文章推荐
Visual Studio中的jQuery智能提示设置方法
Mar 27 Javascript
关于JavaScript的面向对象和继承有利新手学习
Jan 11 Javascript
jquery实现增加删除行的方法
Feb 03 Javascript
JS操作HTML自定义属性的方法
Feb 10 Javascript
AngularJS的内置过滤器详解
May 14 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
May 10 Javascript
JavaScript简单实现弹出拖拽窗口(二)
Jun 17 Javascript
微信小程序switch组件使用详解
Jan 31 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
Aug 10 Javascript
在微信小程序中保存网络图片
Feb 12 Javascript
解决vuecli3中img src 的引入问题
Aug 04 Javascript
教你一步步实现一个简易promise
Nov 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 操作文件的一些FAQ总结
2009/02/12 PHP
深入解析php中的foreach函数
2013/08/31 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
Python3 操作符重载方法示例
2017/11/23 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
基于Python实现天天酷跑功能
2021/01/06 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
英国床垫在线:Mattress Online
2016/12/07 全球购物
工程专业毕业生自荐信范文
2013/12/25 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
园林系毕业生求职信
2014/06/23 职场文书
普通话演讲稿
2014/09/03 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript