vue watch深度监控一个对象下新增属性不生效问题

2023-05-16

先简单还原下项目中遇到的问题:

adc为一个空对象,watch深度监听abc下的pageNum属性(此时还没有)。

data() {
    return {
      abc: {
        
      }
    }
},
watch:{
    'abc': {
      deep:true,
      immediate:true,
      handler(newV){
        this.pageNum = newV.pageNum
      }
    }
  },

我们都知道若直接使用下面1的方式不是响应式的,也就无法监听,改为方式2可监听。

1,

this.abc.pageNum = 1

2,

this.$set(this.abc,'pageNum',1)

这里重点要讲的是:

1,若写完方式1后再执行方式2也是无法达到响应式的,自然也无法监听。

2,若写完方式1后再 this.abc={}  情况 后再执行方式2也是可以的。

实际项目中没人会这么傻瓜的写,我也是在改同事代码的时候遇到这种问题,实际情况为在俩个组件中都改变pageNum的值,一个为方式1,另一个为方式2,方式1的组件有俩个方法还有  其中一个方法有this.abc={},这骚操作,这就导致页面展示时bug很是怪异!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue watch深度监控一个对象下新增属性不生效问题 的相关文章

  • uni-app项目中使用scss语法

    最近正在学习uni app开发 我先把文档浅略翻了遍 发现组件和接口几乎都是按照微信小程序走 但是视图层上的语法又是按照vue的语法走的 所以开发过程一定要注意这点 然后我想在uni app项目中使用scss语法 但是具体怎么安装呢 历经曲
  • 在“本地”或“监视”窗口中查看对象会导致 Excel 崩溃

    在 Excel 中 当我运行一些代码并放置断点时 我可以查看局部窗口中的值 在本地窗口中 当我尝试为我创建的类展开对象时 Excel 崩溃并显示 Microsoft Office Excel 遇到问题 需要关闭 对于给您带来的不便 我们深表
  • 【vue3】elementplus日期组件英文转中文

    vue3 elementplus日期组件英文转中文 1 在main js或者main ts中加入 即可解决 import ElementPlus from element plus import element plus dist inde
  • 【vue2+element-ui】el-upload封装多图上传组件

    halo小伙伴们 在开发表单中会有遇到需要多图上传 可动态限制上传的图片数量 大小 支持删除 显示提示语的需求 在这小编带来一个小编自封装用了很久的多图上传组件 话不多说上代码 首先创建一个如 XUploadImgList vue的文件 编
  • 大事件项目07----10,11,12未录

    1 如果三方jar包对应的对象 2 来自第三方 是无法用 Component及衍生注解生命bean的 3 使用Maven命令 引入jar包 4 这里我们准备了jar包 也提前准备好了jar包的脚本 5 通过本地的方式来安装maven的坐标
  • Vue学习之watch侦听器:案例实现翻译功能

    watch侦听器 作用 监视数据的变化 当数据发生变化时 执行一些业务逻辑或者是异步操作 执行的场景例如在线翻译 当文本区域的内容发生变化时 会发生翻译内容的同时更新 语法 简单的写法 简单数据类型 可以直接的进行监听 完整的写法 添加额外
  • Vue学习之watch侦听器:案例实现翻译功能

    watch侦听器 作用 监视数据的变化 当数据发生变化时 执行一些业务逻辑或者是异步操作 执行的场景例如在线翻译 当文本区域的内容发生变化时 会发生翻译内容的同时更新 语法 简单的写法 简单数据类型 可以直接的进行监听 完整的写法 添加额外
  • Vue3+Echarts:堆积柱状图的绘制

    一 需求 在Vue3项目中 想用Echarts来绘制堆积柱状图 去展示最近一周APP在不同渠道的登录人数 效果如下 二 实现 关于Echarts的下载安装以及图表的样式设计 此处不展开 1 Templates部分
  • Sass --watch 不重新编译

    Sass 更新了我的主样式表build css当我将更改保存到build scss 但不会更新build css例如 当我保存对任何部分的更改时 grid settings scss 我基本上必须手动重新保存build scss每次我对部分
  • 拓展:vue 父组件调用子组件方法ref(且父组件可通过ref调用的方法传值给子组件)

    1 ref被用来给元素或子组件注册引用信息 引用信息将会注册在父组件的 refs对象上 一 ref被用来给元素或子组件注册引用信息 引用信息将会注册在父组件的 refs对象上 div class formBtn fl 111 div div
  • 使用 PHPstorm 7 文件观察器将 SCSS / SASS 转换为特殊文件夹中的 CSS

    我使用 PHPstorm 6 并且我的 SCSS 文件被编译到 CSS 文件夹中 所以我有 css main css img js scss main scss variables scss Hier are my definitions
  • $watch 一个服务变量或者 $broadcast 一个带有 AngularJS 的事件

    我正在使用一项服务在控制器之间共享数据 当变量被修改时 应用程序必须更新 DOM 我找到了两种方法来做到这一点 您可以在此处查看代码 http jsfiddle net sosegon 9x4N3 7 http jsfiddle net s
  • 如何使用 Typescript 在 VueJs 手表中使用 Lodash debounce

    在 VueJS Javascript 中我可以这样做 import debounce from lodash debounce watch variable debounce function console log wow 500 在 V
  • ❤ Vue3 使用

    Vue3 使用 Vue3之toRefs的使用 作用 toRefs 可以将一个响应式的对象 转换成普通对象 但是转换后的普通对象的每一个属性值都是响应式的 这样我们可以使用es6的对象解构或者三点运算符等操作 代码
  • AngularJs 如何从轮询服务获取数据到控制器

    我有这个service它检查后端是否有新数据 它工作正常 但问题是我无法使用从服务到控制器的数据 watch也不使用promise SERVICE service notificationPollService function q htt
  • 观看过程替换

    我经常运行命令 squeue u USER tee gt wc l where squeue is a 泥浆命令 https slurm schedmd com squeue html查看您正在运行多少个作业 这给了我两个输出squeue并
  • 在 ITC 审查期间观看 OS3、UIRequiredDeviceCapability 问题

    在试飞审查期间 我遇到了以下问题 来自苹果 2 3 性能 准确的元数据性能 2 3 我们无法在运行的 Apple Watch 上安装应用程序扩展 操作系统3 Info plist 中的 UIRequiredDeviceCapability
  • 调试时的监视窗口:CS0103:当前上下文中不存在名称“

    我正在使用 Visual Studio Community 2022 64 bit Version 17 4 2 with NET Framework Version 4 8 09032 昨天 2022 年 2 月 12 日有更新 我是通过
  • 当私有成员变量更改值时,如何停止 Visual Studio 调试器中的执行?

    假设我的类有一个名为 count 的私有整数变量 我已经在代码中遇到了断点 现在 在我按 继续 之前 我想让调试器在 count 获得分配给它的新值时停止 除了将 count 提升到字段并在字段的 set 方法上设置断点之外 还有其他方法吗
  • CIFIlter 是否有替代方案可以在 watch os 6 中生成二维码

    我正在开发一个独立于手表的应用程序 我想在 watchkit 上生成二维码 但是由于 coreImage 不能与 watchkit 一起使用 我们还有其他方法可以做到这一点吗 Thanks 我使用支持 watchos 的库 例如EFQRCo

随机推荐

  • Java多线程

    文章目录 1 实现多线程1 1 进程和线程1 2 实现多线程方式一 xff1a 继承Thread类1 3 设置和获取线程名称1 4 线程优先级1 5 线程控制1 6 线程的生命周期1 7 实现多线程方式二 xff1a 实现Runnable接
  • Java编程思想(第4版)习题答案

    https span class token operator span span class token operator span span class token operator span greggordon span class
  • Bootstrap给表格设置宽度不起作用

    更改名称为table的class 将table layout属性设置为fixed span class token selector table span span class token punctuation span span cla
  • C++作用域运算符“::“的作用

    1 当存在具有相同名称的局部变量时 xff0c 要访问全局变量 include lt iostream gt using namespace std int x Global x int main int x 61 10 Local x c
  • HTML实现鼠标拖动元素排序

    1 简介 拖放 xff08 Drag和 drop xff09 是 HTML5 标准的组成部分 xff0c 为了使元素可拖动 xff0c 必须把 draggable 属性设置为 true xff0c 整个拖拽事件触发的顺序如下 xff1a d
  • MacOS安装svn客户端

    一 安装Homebrew环境 打开终端 输入以下命令 bin zsh c span class token string 34 span class token variable span class token variable span
  • MySql数据库root账户无法远程登陆解决办法

    最近换了新的腾讯云服务器后 xff0c 通过宝塔面板安装了mysql 数据库 xff0c 之后使用root用户通过navicat远程连接登录不了 解决办法如下 两行代码ok MySQL5 7和MySql8 开启root 用户远程访问 mys
  • MacOS修改Hosts文件

    1 苹果Mac电脑上 xff0c hosts文件的路径为 etc hosts xff0c 打开VI编辑 span class token function sudo span span class token function vim sp
  • ERD Online 4.0.0 免费私有部署方案

    文章目录 1 快速安装2 前置条件 3 一键安装 4 兼容性列表4 1 云主机兼容性列表4 2 虚拟机兼容性列表 1 快速安装 ERD Online的服务理念 xff1a 能喂到嘴里 xff0c 绝不递到手里 2 前置条件 一台至少配置为
  • mysql: error while loading shared libraries: libtinfo.so.5 解决办法

    Centos8中安装mysql8 xff0c 服务启动后 xff0c 连接服务时报错为以下错误信息 mysql error span class token keyword while span loading shared librari
  • trilead-ssh2连接不上centos服务器Caused by: java.io.IOException: Cannot negotiate, proposals do not match.

    导致此问题的原因是ssh升级后 xff0c 为了安全 xff0c 默认不在采用原来一些加密算法 xff0c 我们手工添加进去即可 1 步骤一 修改ssh的配置文件 etc ssh sshd config 搜索KexAlgorithms xf
  • macos安装nvm

    文章目录 1 概述2 安装注意事项3 安装nvm 1 概述 nvm 即 node version manager xff0c 好处是方便切换 node js 版本 2 安装注意事项 卸载从node官网下载pkg安装的nodesudo rm
  • Linux下生产者消费者问题的C语言实现

    注 xff1a 查看全文请关注作者 xff0c 或点击前往 xff1a 生产者 消费者问题的C语言实现 实验六 生产者 消费者问题实现 实验题目 要求 在Linux操作系统下用C实现经典同步问题 xff1a 生产者 消费者 xff0c 具体
  • ftpClient文件上传成功但总是返回false

    ftpClient storeFile newFileName is xff1b 文件上传成功但总是返回false flag span class token operator 61 span ftpClient span class to
  • “佛祖保佑“代码注释

    注释如下 oo0oo o8888888o 88 34 34 88 0 61 0 96 39 39 39
  • android带视频和图片的轮播(banner)解决方案

    方案只包含一个视频和多张图片 xff0c 如果又多个视频的 xff0c 可以修改适配器中的的播放器为一个list xff0c 并且在滑动中做相应的释放操作 一 xff1a 实现一个视频和多张图片的轮播banner 使用到第三方框架有 1 轮
  • Android灯光系统(硬件访问服务框架)

    Android灯光系统 硬件访问服务框架 Java类 xff1a LightsService java LightsService java通过调用 xff0c LightsService JNI来实现com android server包
  • Ubuntu16.04简易安装pycharm社区版

    1 首先到官网下载linux版本的pycharm xff0c 为了使用方便 xff0c 直接安装社区版 https www jetbrains com pycharm download section 61 linux xff08 因为虚拟
  • vue 严格格式问题

    用vue cli脚手架搭建开发环境 xff0c 会自动安装eslint严格格式 xff0c 如果代码格式不按照严格模式写 xff0c 会经常报警告 xff08 如缩进4个空格会警告 xff09 xff0c 如下图是一些警告类型 xff1a
  • vue watch深度监控一个对象下新增属性不生效问题

    先简单还原下项目中遇到的问题 xff1a adc为一个空对象 xff0c watch深度监听abc下的pageNum属性 xff08 此时还没有 xff09 data return abc watch 39 abc 39 deep true