关于vue中watch检测到不到对象属性的变化的解决方法


Posted in Javascript onFebruary 08, 2018

前言

在vue开发的过程中发现一个问题:改变vue.$data中对象的属性,watch是观测不到变化,但其实对象的属性是有变化的。这……,有点难以置信!

正文

<template>
 <div>
  <dl>name: {{option.name}}</dl>
  <dl>age: {{option.age}}</dl>
  <dl>
   <button @click="updateAgeTo25">update age with 25</button>
  </dl>
 </div>
</template>

<script>
export default {
 data () {
  return {
   option: {
    name: "isaac",
    age: 24
   }
  }
 },
 watch: {
  option(val) {
   console.log(val)
  }
 },
 methods: {
  updateAgeTo25() {
   this.option.age = 25
  }
 }
}
</script>

关于vue中watch检测到不到对象属性的变化的解决方法

关于vue中watch检测到不到对象属性的变化的解决方法

如结果所示,option.age已经更新,但是watch中的option函数并没有被触发。

vue的watch钩子会那么鸡肋?我是不信的了。

深层watch

...
 watch: {
  option: {
   handler(newVal) {
    console.log(newVal);
   },
   deep: true,
   immediate: true
  }
 },
 ...

需要深层watch就需要开启deep属性

关于vue中watch检测到不到对象属性的变化的解决方法

关于vue中watch检测到不到对象属性的变化的解决方法

如结果所示。

另外,你会发现,在age没有变化前也是有打印出option,这是因为开启immediate属性,设定为true,

该回调将会在侦听开始之后被立即调用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery的颜色选择插件实例代码
Oct 02 Javascript
JS关键字球状旋转效果的实例代码
Nov 29 Javascript
解决js中window.open弹出的是上次的缓存页面问题
Dec 29 Javascript
jQuery Ajax()方法使用指南
Nov 19 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
Jan 09 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
Jan 19 Javascript
分享两段简单的JS代码防止SQL注入
Apr 12 Javascript
深入理解bootstrap框架之第二章整体架构
Oct 09 Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 Javascript
vue实现的组件兄弟间通信功能示例
Dec 04 Javascript
vue实现文字加密功能
Sep 27 Javascript
使用veloticy-ui生成文字动画效果
Feb 08 #Javascript
js中let和var定义变量的区别
Feb 08 #Javascript
详解Nuxt.js Vue服务端渲染摸索
Feb 08 #Javascript
VUE 使用中踩过的坑
Feb 08 #Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
Feb 08 #Javascript
在vue项目中使用element-ui的Upload上传组件的示例
Feb 08 #Javascript
vue中实现methods一个方法调用另外一个方法
Feb 08 #Javascript
You might like
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
javascript代码加载优化方法
2011/01/30 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
python 从远程服务器下载东西的代码
2013/02/10 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
安全生产网格化管理实施方案
2014/03/01 职场文书
报纸媒体创意广告词
2014/03/17 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
大学班级计划书
2014/04/29 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
总经理司机岗位职责
2015/04/10 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫