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 相关文章推荐
使用prototype.js 的时候应该特别注意的几个问题.
Apr 12 Javascript
js 单引号 传递方法
Jun 22 Javascript
基于jquery的表格排序
Sep 11 Javascript
菜鸟javascript基础整理1
Dec 06 Javascript
单击和双击事件的冲突处理示例代码
Apr 03 Javascript
JavaScript简介
Feb 15 Javascript
javascript实现动态改变层大小的方法
May 14 Javascript
JavaScript中this详解
Sep 01 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
JS简单验证上传文件类型的方法
Apr 17 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
Jul 04 Javascript
Vue中的this.$options.data()和this.$data用法说明
Jul 26 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中的类型约束介绍
2015/05/11 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
React快速入门教程
2017/01/17 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
OpenLayers实现图层切换控件
2020/09/25 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
Python文件和流(实例讲解)
2017/09/12 Python
遗传算法之Python实现代码
2017/10/10 Python
python实现感知器算法详解
2017/12/19 Python
Python猴子补丁知识点总结
2020/01/05 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
服装公司总经理岗位职责
2013/11/30 职场文书
会计自荐书
2013/12/02 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
主持人演讲稿
2014/05/13 职场文书
委托书如何写
2014/08/30 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL
Redis主从复制操作和配置详情
2022/09/23 Redis