当前位置: 首页 > news >正文

不建议在useEffect中进行数据获取的理由

不建议在useEffect中进行数据获取的理由

理由1. 假设A搜索条件 响应时间 长于B搜索条件 则 快速切换搜索条件时 存在接口竞态问题!

  • 解决方法: 使用 清理函数 一个布尔值来判断
import styles from './index.less';
import { useEffect, useState } from 'react';
import { Button } from 'antd';
const HomePage: React.FC = () => {const [c, setC] = useState(1);useEffect(() => {console.log('1', c);// step1return () => {// 从第二次触发这个useEffect是都会调用这个函数.// 打印的值是上次的值//console.log('2', c); // click Button step2}}, [c]);// 初始化执行 useEffect 打印 1 1 不执行return// 点击 按钮 打印 2 1 再打印 1 2// 再点击按钮 打印 2 2 再打印 1 3return (<div className={styles.container}><Button onClick={() => setC(Number(c) + 1)}>addC</Button></div>);
};export default HomePage;

理由2. 严格模式下, 开发环境中 useEffect 总是会运行两次 导致调用了2次接口

解决方法 使用自定义hooks 或者React Query等库

http://www.xdnf.cn/news/467623.html

相关文章:

  • 以项目的方式学QT开发(一)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
  • 【中级软件设计师】网络攻击(附软考真题)
  • cmake 指定安装路径
  • 街景主观感知全流程(自建数据集+两两对比程序+Trueskill计算评分代码+训练模型+大规模预测)11
  • Excel导入日期变数字,数据库入库异常的排查与修复过程
  • 【iOS】alloc的实际流程
  • 【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最大化、最小化Vs界面
  • AD PCB板logo及二维码放置
  • Linux基础 -- 在内存中使用chroot修复eMMC
  • 非加密散列算法的应用-MurmurHash
  • 【Java】Spring IoC中的相关注解
  • 关于mysql分区键
  • Web GIS可视化地图框架Leaflet、OpenLayers、Mapbox、Cesium、ArcGis for JavaScript
  • 5.15本日总结
  • docker 命令操作大全
  • 【Matlab】最新版2025a发布,深色模式、Copilot编程助手上线!
  • redis中key的过期和淘汰
  • PDA手持终端应用有哪些?
  • Python生成器:高效处理大数据的秘密武器
  • YOLO11解决方案之距离计算探索
  • RHCE实验:通过脚本判断用户是否存在
  • 与entity物体的交互
  • 提升MySQL运维效率的AI利器:NineData深度评测与使用指南
  • 网页渲染的两条赛道
  • 语音识别——语音转文字
  • 20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤
  • Spring Boot 拦截器:解锁5大实用场景
  • QImage高效率像素操作的方法
  • 基于windows环境Oracle主备切换之后OGG同步进程恢复
  • 兰亭妙微B端UI设计:融合多元风格,点亮品牌魅力