重新了解一下之前的單對象變化問題

2024-03-21 15:28

本文主要是介绍重新了解一下之前的單對象變化問題,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

單對象變化問題

  • 聲明一個方法
  • 在頁面中監聽這個對象的改變

2年之前寫過一篇文章,有些誤導,重新寫一遍

聲明一個方法

不管是在哪裡,創建一個名為 single-object.jsx 的文件

export const singleObject = (newObj, oldObj) => {return JSON.stringify(newObj) == JSON.stringify(oldObj);
}

在頁面中監聽這個對象的改變

import { useState, useEffect } from "react";
import { singleObject } from './common/single-object.jsx'const App = () => {const [objOne, setObjOne] = useState({ name: "objOne" });const [objOneCopy, setObjOneCopy] = useState({});useEffect(() => {setObjOneCopy({...objOne});}, []);useEffect(() => {console.log(singleObject(objOne, objOneCopy));}, [objOne, objOneCopy]);const changeObj = async () => {await setObjOne({ name: "objOne_change" });}return (<div className="App"><div>objOne: {JSON.stringify(objOne)}</div><div>objTwo: {JSON.stringify(objOneCopy)}</div><button onClick={changeObj}>改變obj_one</button></div>);
}export default App;

總之,這個代碼是利用與在你做出一個操作後,你想知道你這個對象有沒有哪裡發生過改變,如果對象的keys或者對象的value有發生過改變,就會返回false,因為使用了JSON.stringify則會做出全方位的檢查,能改變的應該也只有key:value

                                      -- 填個坑

这篇关于重新了解一下之前的單對象變化問題的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/833037

相关文章

@ControllerAdvice:你可以没用过,但是不能不了解

1.概述 最近在梳理Spring MVC相关扩展点时发现了@ControllerAdvice这个注解,用于定义全局的异常处理、数据绑定、数据预处理等功能。通过使用 @ControllerAdvice,可以将一些与控制器相关的通用逻辑提取到单独的类中进行集中管理,从而减少代码重复,提升代码的可维护性。 定义如下 /*** Specialization of {@link Component @

玩转Web之easyui(三)-----easy ui dataGird 重新指定url以获取不同数据源信息

如果已经写了一个dataGird并且已经通过url绑定数据源,能不能在其他地方改变url使其从不同数据源获取信息,从而实现查询等操作?答案当然是肯定的,而且仅需要几行代码 $('#btnq').bind('click', function(){ $('#dg').datagrid({ url: '../servlet/Student_search' });//重新指定url$('#dg'

【从0实现React18】 (四) 如何触发更新 带你了解react触发更新的流程以及更新后如何触发render

常见的触发更新的方式 创建 React 应用的根对象 ReactDOM.creatRoot().render();类组件 this.setState();函数组件 useState useEffect; 我们希望实现一套统一的更新机制,他的特点是: 兼容上述触发更新的方式方便后续拓展(优先级机制) 更新机制的组成部分 代表更新的数据结构 Update消费update的数据结构——Up

体验了一下AI生产3D模型有感

我的实验路子是想试试能不能帮我建一下实物模型 SO 我选择了一个成都环球中心的网图 但是生成的结果掺不忍睹,但是看demo来看,似乎如果你能给出一张干净的提示图片,他还是能做出一些东西的 这里我延申的思考是这个物体他如果没看过背面,他怎么猜? 他产出的物品为啥都是一张图的,我还是不太理解 但是如果多张图片,其实又和一个多图3D重建的能力似乎重复了 或者我感觉这个功能需求两张图片 正上面45

简单了解ESD模型与TLP曲线

上文讲了ESD和EOS的区别,说实话远不止那些。今日再稍加深入的介绍ESD。 一 ESD原理 ESD-Electro Static Discharge静电放电,具有不同静电电位的物体互相靠近或者直接接触引起的电荷转移。正常情况下,物体内部的正负电荷是相等的,对外表现不带电。当任何两种不同材质的物体接触后再分离就会产生静电。当正负电荷逐渐累计到一定程度时,将与周围环境产生电位差,从而使电荷经由放

折腾了一下,让博客访问速度变快了

最近一直在写笔记,而没有更新系统性的内容,所以也很久没有打开自己的博客(xuzhougeng.top),最近打算更新一篇笔记的时候,发现博客居然打不开了。 我查了查原因,发现有两方面的问题 我使用halo建站,服务器地理位置不太好我用的halo主题太笨重了,需要加载太多的css 找到问题之后,就很好解决了。 我首先迁移了博客,发现访问速度并没有明显提升。接着,我通过浏览器的开发者工具,检查哪些内

全面分析一下前端框架Angular的来龙去脉,分析angular的技术要点和难点,以及详细的语法和使用规则,底层原理-小白进阶之路

Angular 前端框架全面分析 Angular 是一个由 Google 维护的开源前端框架。它最早在 2010 年发布,最初版本称为 AngularJS。2016 年,团队发布了一个完全重写的版本,称为 Angular 2,之后的版本(如 Angular 4、Angular 5 等)都统称为 Angular。 一、历史背景 1. AngularJS(Angular 1.x) 发布年份:2

了解Play

偶然看到这篇文章,写的不错,拿来分享一下。 版权所有©转载必须以链接形式注明作者和原始出处 原文地址:http://freewind.me/blog/20120728/965.html 我要捐助(Donate)博主,鼓励他写出更多好文章 =======================原文========================= 为了方便群中的Play初学者们,写了一

【理论了解】接口测试简介以及接口测试用例设计思路

接口测试简介 1.什么是接口 接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的,我们还的对这个接口怎么进行传输进行进行一些设置和定义。开发所谓的接口是模块模块之间的一种连接,而测试眼中的接口是一种协议(对接口的功能的一种定义) 2.接口的种类和分类 外部接

了解 Spring RequestMapping

1. 概述   这篇文章会集中讨论 Spring MVC 的一个重要注解 @RequestMapping。   简要地说,该注解用于把 Web 请求映射到 Spring Controller 方法。   2. @RequestMapping 基础   先从一个简单的示例开始:通过设置基本条件把 HTTP 请求映射到某个方法。   2.1. 路径映射   @RequestMa