Vue中watch监听属性新旧值相同问题解决方案
侦听器 _watch:
作用:可以侦听data和computed中数据的变化.
语法
watch: { "被侦听的属性名" (newVal, oldVal){ } }
监听简单数据类型时可以直接使用,而监听复杂数据类型时,例如当我们只需要监听data或者computed中对象的某个属性时,可以使用字符串的形式进行监听.
//举例:
watch: {
//字符串形式 表示监听item对象下的good_count属性
'item.goods_count'(newval) {
if (newval <= 0) {
this.item.goods_count=1
}
}}
在watch中,如果对对象进行监听,只有对象obj被重新赋值时
,watch才会被监听到,这个时候无法对obj里面的属性的变化进行监听,我们也可以给watch对象加上深度监听属性.
handler(newval, oldval) {console.log("完整写法,监听复杂数据类型", newval);},deep: true, //表示开启深度监听immediate: true, //立即监听,在页面初始化时,会监听一次}
而监听复杂数据类型,当复杂数据类型被改变之后,newval的值改变,由于newval和oldval都指向同一个对象
,导致oldval也会随之改变,打印出来则没有了old和new之分.
解决方法:在初始化的时候,深克隆一个oldval.
也有看其他人写的文章解决方案,都大差不差,都是使用一个计算属性加上深拷贝,不知道是自己理解能力有问题还是说习惯通俗的表达,看别人的回答时总感觉很拗口.于是自己总结了一下.
在我看来,解决此问题的关键在于:我们此时遇到的问题就是新值与旧值指向同一个地址的问题.而深拷贝的特点就是新开辟一个地址储存需要拷贝对象的所有属性.然后指向这个新地址. 故 JSON.parse(JSON.stringify()
能完美解决其中的问题.然后与计算属性合并达到监听的属性一旦变化,自动新开辟一个地址,储存新值.而新值与旧值指向的地址不同,则解决了新值与旧值相同的问题.
<div id="app"><input type="text" v-model="lzy.age" /></div>
</template><script>
export default {name: "App",watch: {lzy2: {handler(newvalue, oldvalue) {console.log("新值");console.log(newvalue);console.log("旧值");console.log(oldvalue);console.log(oldvalue===this.lzy);},deep: true,},},data() {return {lzy: {gender: "man",age: 21,},};},computed: {lzy2(){return JSON.parse(JSON.stringify(this.lzy))// 因为计算属性一开始就执行了一次,相当于在一开始就深拷贝拿到了oldvalue,改变之后又再一次深拷贝,每一次深拷贝生成的对象都是指向不同的地址,所以oldvalue和newvalue是两个不同的地址.},},
};
</script><style scoped>
</style>
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Vue中watch监听属性新旧值相同问题解决方案
侦听器 _watch: 作用:可以侦听data和computed中数据的变化. 语法 watch: { "被侦听的属性名" (newVal, oldVal){ } } 监听简单数据类型时可以直接使用,而监听复杂数据类型时,例如当我们只需要监听data或者computed中对象的某个属性时,可以使用字符串的形式进行监听…...
![](https://img-blog.csdnimg.cn/20270d55f05442a7ae79a965f80edb58.png)
awk案例练习
目录 一、awk练习 1.1筛选ip地址 1.2字段去重 1.3次数统计 1.4统计TCP连接状态 1.5处理字段缺失的数据 1.6筛选给定时间范围内的日志 一、awk练习 1.1筛选ip地址 ifconfig命令查看IP 利用awk进行筛选 ifconfig | awk BEGIN{RS""}NR2{print $6} RS指定输入记…...
![](https://img-blog.csdnimg.cn/img_convert/68991b1f80e46b227d0706cc78d79d2e.jpeg)
Debian 12.1 正式发布
导读Debian 12.1 现已发布,这是对稳定发行版 Debian 12(代号 Bookworm )的首次更新。本次发布主要增加了安全问题的修正,并对严重问题进行了一些调整。 一些更新内容包括: 妥善处理系统用户的创建;修复 eq…...
![](https://www.ngui.cc/images/no-images.jpg)
neo4j清空数据库
清空所有Person、 Movie节点及其所有关系 MATCH (a:Person), (m:Movie) OPTIONAL MATCH (a)-[r1]-(), (m)-[r2]-() DELETE a,r1,m,r2 查询任意数据 MATCH (n) RETURN n 如果没有, 就说明已经删除成功了 这段代码是用Cypher查询语言编写的,用于清空…...
![](https://img-blog.csdnimg.cn/c8e8f6d953f543aa838be93ccef1e270.png)
SpringBoot整合Mybatis-Plus
文章目录 前言一、Mybatis-Plus简介二、框架结构三、SpringBoot整合Mybatis-Plus1.依赖2.配置文件设置 四、前期准备4.1数据库信息4.2dao类4.3pojo类 五、常用注解5.1 TableName(value "")5.2 TableId(value"",type IdType.XXX)5.3 TableField("&qu…...
![](https://www.ngui.cc/images/no-images.jpg)
在langchain中使用自定义example selector
在langchain中使用自定义example selector 简介 在之前的文章中,我们提到了可以在跟大模型交互的时候,给大模型提供一些具体的例子内容,方便大模型从这些内容中获取想要的答案。这种方便的机制在langchain中叫做FewShotPromptTemplate。 如…...
![](https://img-blog.csdnimg.cn/cbf959fc502749fcaf3014037c7a12f8.png)
pytest常用执行参数详解
1. 查看pytest所有可用参数 我们可以通过pytest -h来查看所有可用参数。 从图中可以看出,pytest的参数有很多,下面是归纳一些常用的参数: -s:输出调试信息,包括print打印的信息。 -v:显示更详细的信息。 …...
![](https://img-blog.csdnimg.cn/f7e7abb34dc341a3904872b96efbfd23.png)
本地项目如何连接git远程仓库
在本地新建项目后,如何连接git远程仓库呢?步骤如下: 第一步, 首先我们在git上新建仓库,设置模板可勾选Readme文件。(readme文件的创建是为了介绍所写代码的一些详细信息,为了之后更好的维护。)…...
![](https://img-blog.csdnimg.cn/ab21351f57e844ad9f5ca925bf8d8c5e.png)
力扣 494. 目标和
题目来源:https://leetcode.cn/problems/target-sum/description/ C题解(来源代码随想录):将该问题转为01背包问题。 假设加法的总和为x,那么减法对应的总和就是sum - x。所以我们要求的是 x - (sum - x) target。x …...
![](https://img-blog.csdnimg.cn/0b67ea2025054529bc8fea95a239c291.png)
Maven-搭建私有仓库
使用NEXUS REPOSITORY MANAGER 3在Windows上搭建私有仓库。 NEXUS REPOSITORY MANAGER 3 是一个仓库管理系统。 下载NEXUS3 官网上是无法下载的,所以网上搜nexus-3.18.1-01-win64就能搜到,下载即可。 安装NEXUS3 下载nexus-3.18.0-01-win64.zip至相应目录下(路径不要有中文)。 …...
![](https://www.ngui.cc/images/no-images.jpg)
PostgreSql 参数配置
一、访问控制参数配置 https://xiaosonggong.blog.csdn.net/article/details/124264877 二、数据库参数配置 2.1 概述 PostgreSQL 的参数配置参数是在 postgresql.conf 文件中集中管理的,类似于 Oracle 的 pfile 文件,除此之外,PostgreSQL…...
![](https://img-blog.csdnimg.cn/f25792ab92834c41a08c75e8392afd8f.png#pic_center)
【BMC】OpenBMC开发基础2:修改原有程序
修改原有程序 通常情况下我们会需要修改OpenBMC原有的程序来适配我们的项目,本节将介绍一般的流程。 为此首先我们需要了解devtool这个工具,注意它不是前端开发用的那个devtool,而是由OE(或者Yocto?)提供…...
![](https://www.ngui.cc/images/no-images.jpg)
2012年数学建模竞赛脑卒中发病环境因素分析及干预日期数据处理代码
因四个表格日期数据处理有些复杂,故作此代码一次性处理四组数据: import datetime import pandas as pddef check(string, df, i, num, error_list):if is_valid(pd.to_datetime(string, errorscoerce, format%Y/%m/%d), error_list, i):df.iloc[i, nu…...
![](https://img-blog.csdnimg.cn/img_convert/8d26595609de64d6dc42c8dbe3aace4c.png)
Merge和Rebase的区别
Merge 和 Rebase 是 Git 中常用的两种分支整合方式,它们具有不同的工作原理和效果: Merge(合并) 合并是将两个或多个分支的提交历史合并为一个新的提交。在合并时,Git 会创建一个新的合并提交,将两个分支…...
![](https://www.ngui.cc/images/no-images.jpg)
[RTKLIB]模糊度固定相关问题(二)
文章目录 一、固定模糊度的前置工作1. 做好固定模糊度的准备2. 建立双差模糊度3. 问题与总结 版权声明:本文为原创文章,版权归 Winston Qu 所有,转载请注明出处。 在上一篇文章中,介绍了RTKLIB中manage_amb_LAMBDA()函数ÿ…...
![](https://img-blog.csdnimg.cn/44724753b9024d0fa30f4e415f7262b4.png)
QtAV for ubuntu16.04
下载ubuntu https://releases.ubuntu.com/16.04/ubuntu-16.04.7-desktop-amd64.iso 下载ffmpeg https://ffmpeg.org/download.html 下载QtAV https://github.com/wang-bin/QtAV/releases 更新 sudo apt update 安装库 sudo apt-get install libglu1-mesa-dev freeglut3-dev…...
![](https://www.ngui.cc/images/no-images.jpg)
MFC 文件读写包括字符串的结构体
试过CString char* 写入的都是地址 struct Param{int ID;int index;char val[128]; };vector<Param>ans; UINT count 17; ans.resize(count); FILE* fp; fopen_s(&fp,_T("my.txt"),_T("rb")); if(count ! fread(&ans[0],sizeof(Param),cou…...
![](https://img-blog.csdnimg.cn/img_convert/a45efeecafa1f39dcaf3e61f24ab9216.png)
在家构建您的迷你聊天Chat gpt
推荐:使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 什么是指令遵循模型? 语言模型是机器学习模型,可以根据句子的前一个单词预测单词概率。如果我们向模型请求下一个单词,并将其递减地反馈给模型以请求更多单词ÿ…...
![](https://img-blog.csdnimg.cn/1f6e995447124c25869203c001ca8257.png)
pytest自动化测试框架之断言
前言 断言是完整的测试用例中不可或缺的因素,用例只有加入断言,将实际结果与预期结果进行比对,才能判断它的通过与否。 unittest 框架提供了其特有的断言方式,如:assertEqual、assertTrue、assertIn等,py…...
![](https://www.ngui.cc/images/no-images.jpg)
C++模板的用法
目录 模板的概念 函数模板(Function Templates) 基本用法 函数模板的实例化 匹配原则 类模板(Class Templates) 模板的概念 C中的模板(Templates)实际上是一种泛型编程(Generic Programm…...
![](https://img-blog.csdnimg.cn/ed251315ea16405f8ef13a34a11f1e1d.png)
ESP 32 蓝牙虚拟键盘链接笔记本电脑的键值问题
由于打算利用esp32 通过蓝牙链接电脑后实现一些特俗的键盘功能,所以就折腾了一下,折腾最耗费时间的却是键值问题,让一个20多年的老司机重新补充了知识 过程曲折就不说了,直接说结果。 我们通过网络搜索获取的键值和蓝牙模拟键盘传…...
![](https://img-blog.csdnimg.cn/55ec45ea380449f29dce7cea656f538d.png)
128.【Maven】
Maven仓库 (一)、Maven 简介1.传统项目管理的缺点2.Maven是什么3.Maven的作用 (二)、Maven 的下载与安装1.下载与认识目录2.配置Maven的全局环境 (三)、Maven 的基础概念1.Maven 仓库(1).仓库分类 2. Maven 坐标3.Maven 本地仓库配置(1).改变默认的仓库地址(2).改变远程仓库地址…...
![](https://img-blog.csdnimg.cn/d72619b4438c4e67b5a74aec0db5cc84.png)
嵌入式虚拟仿真实验教学平台之串口发送数据
嵌入式虚拟仿真实验教学平台课程系列 串口发送数据实验 课程内容 本实验使用 STM32 的串口发送数据。开始仿真后,打开串口监视器,串口监视器会打印出要发送的数据。 课程目标 学习配置使用GPIO功能学习配置使用复用功能学习配置使用UART功能 硬件设计 本课程…...
![](https://img-blog.csdnimg.cn/990fa57b1d894064aa53b11f8165916e.png)
Android Studio 屏幕适配
Android开发屏幕适配流程 首先studio中没有ScreenMatch这个插件的,下去现在这个插件 点击File->settings->Plugins->(搜索ScreenMatch插件),点击下载,应用重启Studio即可,如下图 在values下 创建dimens.xml,…...
![](https://img-blog.csdnimg.cn/f2a731081f1c458ba50264d2a61ce451.png)
【C++】C++11--- 线程库及详解lock_guard与unique_lock
目录 一、thread类的介绍二、线程函数参数三、 原子性操作库四、lock_guard与unique_lock4.1、mutex的种类4.2 lock_guard4.3 unique_lock 一、thread类的介绍 在C11之前,涉及到多线程问题,都是和平台相关的,比如**windows和linux下各有自己…...
![](https://img-blog.csdnimg.cn/214b0016cbe847eb87ed9857ed93f371.png)
第二篇|研究数据哪里来——建筑业
数据是研究和产业发展的重要基石,然而无论是学者、企业还是研究机构往往都面临着“找数据难”的局面。本期将分享一些查找建筑相关的数据及资料的渠道。希望可以帮大家解决这一难题,有用求收藏求收藏求收藏~ 1.政府机构 可以查找国家、地方政府的建筑行…...
![](https://www.ngui.cc/images/no-images.jpg)
numpy ascontiguousarra 学习笔记
目录 numpy ascontiguousarra函数 转换命令: ascontiguousarray等价效果: ascontiguousarray学习笔记 ascontiguousarray函数将一个内存不连续存储的数组转换为内存连续存储的数组,使得运行速度更快。 在昇腾开发版上使用时,…...
![](https://img-blog.csdnimg.cn/0218193c13c742fb9537d0f7dcc9edf2.png)
【算法|双指针系列No.1】leetcode283. 移动零
个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...
![](https://img-blog.csdnimg.cn/img_convert/b6354ca4dbceee2e6b90a9d7a2076b2a.jpeg)
PHP8定义字符串的方法-PHP8知识详解
字符串,顾名思义,就是将一堆字符串联在一起。字符串简单的定义方法是使用英文单引号( )或英文双引号(" ")包含字符。另外,还可以使用定界符定义字符串。本文还介绍了字符串的连接符。…...
![](https://img-blog.csdnimg.cn/ae479fcd7d1e4bc19b30a529e20447f3.png)
分享21年电赛F题-智能送药小车-做题记录以及经验分享
这里写目录标题 前言一、赛题分析1、车型选择2、巡线1、OpenMv循迹2、灰度循迹 3、装载药品4、识别数字5、LED指示6、双车通信7、转向方案1、开环转向2、位置环速度环闭环串级转向3、MPU6050转向 二、调试经验分享1、循迹2、识别数字3、转向4、双车通信5、逻辑处理6、心态问题 …...
![](http://img-03.proxy.5ce.com/view/image?&type=2&guid=d6b1bc3a-7e2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-4e1735ddee905e3135f8f31b887ad3cd_b.jpg)
淄博网站制作哪家好/crm管理系统
Redis深度历险分为两个部分,单机Redis和分布式Redis。本文为分布式Redis深度历险系列的第一篇,主要内容为Redis的复制功能。Redis的复制功能的作用和大多数分布式存储系统一样,就是为了支持主从设计,主从设计的好处有以下几点&…...
![](https://img-blog.csdnimg.cn/20200728123027109.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hhaWt1b3RpYW5rb25nMTExMTE=,size_16,color_FFFFFF,t_70)
下载用的网站怎么做/网站开发是做什么的
一、 4.2.5版本下载 链接: https://pan.baidu.com/s/1qKQ9Kzb7qtjfwu8msBNRHA 密码: seun 二、安装 先将下载好的压缩包解压,然后打开 shell 终端,切换到你已经解压好的文件的bin目录下,然后执行下面的命令: install_compass …...
![](/images/no-images.jpg)
wordpress模版开发教程/淘宝关键词怎么做排名靠前
使用方法:将下面的代码保存为jb51.vbs然后拖动你保存在本地的htm页面,拖放在这个vbs即可备注:URL筛选小工具防止出现错误On Error Resume Nextvbs代码开始----------------------------------------------Dim p,s,reIf Wscript.Arguments.Cou…...
![](https://images0.cnblogs.com/blog/92509/201410/151649504982513.jpg)
企业网站推广形式有/太原seo服务
之前写过一篇gridpanel有关动态列的博客,当时只是实验性的写写,实际项目中也没有用,因为是实验性的写,所以对实际项目考虑的问题不是很多,比如,如果是动态列,数据也是动态的,而且可能…...
![](http://www.duozhishidai.com/static/image/public/banner.jpg)
wordpress微型SEO商城/百度无锡营销中心
作为RFID技术的演进版本,NFC与RFID相比具有那些优点而受到手机厂商和运营商如此青睐,让我们一一解读。 NFC定义 NFC是NearFieldCommunication缩写,即近距离无线通讯技术。由飞利浦公司和索尼公司共同开发的NFC是一种非接触…...
![](https://img-blog.csdnimg.cn/20200819191807904.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTk4MTM4,size_16,color_FFFFFF,t_70#pic_center)
做网站卖草坪赚钱吗/五合一网站建设
利用到Java多线程的知识,下面是我的实现代码: import java.util.ArrayList; import java.util.Iterator; import java.util.List;/*** 假设有3个车位可以停车,写一个程序模拟多个用户开车离开、停车入库的效果。* * author qiaoao*/ public …...