React 中 useEffect 清理函数的一个隐蔽陷阱:异步请求导致的竞态与内存泄漏
在 React 函数组件中,useEffect 的清理函数常被用来取消订阅或清除定时器,但很多人忽略了异步请求场景下的竞态问题。比如一个搜索框组件,每次输入都会触发 useEffect 发起 fetch 请求,用户快速输入时多个请求并发返回,后发请求的结果可能先到,导致界面显示旧数据。更隐蔽的是,组件卸载后请求才返回,此时 setState 会触发 React 警告,甚至造成内存泄漏。这个问题在开发环境日志里偶尔出现,容易被当成无关紧要的警告跳过,但在列表页、搜索建议、路由懒加载等场景下会直接影响用户体验。...