当前位置: 首页 > 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等库

相关文章:

  • 火山引擎发展方向
  • 【Hadoop】伪分布式安装
  • AbstractErrorController简介-笔记
  • Qt串口通信粘包拆包解决方案
  • 【虚幻引擎】UE5独立游戏开发全流程(商业级架构)
  • 说一说Node.js高性能开发中的I/O操作
  • 线代第二章矩阵第九、十节:初等变换、矩阵的标准形、阶梯形与行最简阶梯形、初等矩阵
  • 2025长三角杯数学建模A题思路模型代码:智能手机产品设计优化与定价问题
  • uniapp+vite+cli模板引入tailwindcss
  • Java - Junit框架
  • kafka调优
  • CSS相关知识补充
  • 代码分支操作步骤
  • 关于在深度聚类中Representation Collapse现象
  • Kafka消费者分组机制深度解析
  • C语言_自动义类型:联合和枚举
  • [ctfshow web入门] web75
  • 【落羽的落羽 C++】进一步认识模板
  • 代驾小程序订单系统框架搭建
  • 18.中介者模式:思考与解读
  • wordpress是是什么技术/优化网络的软件
  • 重庆哪家公司做网站好/专业竞价托管
  • 做彩票网站需要什么收钱的/aso具体优化
  • 电商网站首页设计/seo短视频加密路线
  • 杭州做网站/seo是什么职业做什么的
  • 汝阳网站开发/开电商需要多少钱