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

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

                                      -- 填個坑

相关推荐

  1. 重新了解一下之前

    2024-03-24 13:38:02       17 阅读
  2. C# 运算符重载 之前小总结

    2024-03-24 13:38:02       18 阅读
  3. 结构表达,了解pythonpep

    2024-03-24 13:38:02       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 13:38:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 13:38:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 13:38:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 13:38:02       18 阅读

热门阅读

  1. Bom,事件对象

    2024-03-24 13:38:02       18 阅读
  2. extern c 和extern c++

    2024-03-24 13:38:02       17 阅读
  3. cookie、session和token的区别

    2024-03-24 13:38:02       22 阅读
  4. 读《舞!舞!舞!》有感

    2024-03-24 13:38:02       19 阅读
  5. SpringBoot全局异常处理方法

    2024-03-24 13:38:02       19 阅读
  6. 【Node.js】events

    2024-03-24 13:38:02       21 阅读
  7. 【jvm】young gc full gc

    2024-03-24 13:38:02       16 阅读
  8. Python爬虫之urllib库

    2024-03-24 13:38:02       17 阅读
  9. 游戏中线上已有功能迭代的兼容问题

    2024-03-24 13:38:02       17 阅读