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 相关文章推荐
jQuery之网页换肤实现代码
Apr 30 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
Dec 28 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
Angular实现的简单查询天气预报功能示例
Dec 27 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
JavaScript事件对象event用法分析
Jul 27 Javascript
通过npm或yarn自动生成vue组件的方法示例
Feb 12 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
Sep 21 Javascript
vue中实现高德定位功能
Dec 03 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 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下常用正则表达式整理
2010/10/26 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
vue - props 声明数组和对象操作
2020/07/30 Javascript
轻松掌握python设计模式之策略模式
2016/11/18 Python
python实现数据写入excel表格
2018/03/25 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
HTML5的语法变化介绍
2013/08/13 HTML / CSS
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
初一家长会邀请函
2014/01/31 职场文书
绩效考核实施方案
2014/03/18 职场文书
小学生家长意见
2015/06/03 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP