react用useEffect防止数据内存泄漏

函数式

1、创建了一个定时器,你需要在组件卸载时清理:

javascript 复制代码
useEffect(() => {
  const id = setInterval(() => {
    console.log('Hello');
  }, 1000);
  return () => {
    // 组件卸载时执行
    clearInterval(id);
  };
}, []); // 空依赖数组意味着仅在组件挂载时运行一次

2、确保初始化函数initData不会在组件卸载后继续执行。

javascript 复制代码
  useEffect(() => {
    let unmount = false;
    (async () => {
      if (!unmount) {
        initData();
      }
    })();
    return () => {
      unmount = true;
    };
  }, [initData]);

Class

javascript 复制代码
  componentWillUnmount = () => {
    this.setState = () => false;
  };
相关推荐
Jonathan Star3 分钟前
基于 **Three.js** 开发的 3D 炮弹发射特效系统
javascript·数码相机·3d
Cache技术分享12 分钟前
241. Java 集合 - 使用 Collections 工厂类处理集合
前端·后端
Lear13 分钟前
解决Flex布局中overflow:hidden失效
前端
Heo14 分钟前
原型理解从入门到精通
前端·javascript·后端
Heo18 分钟前
通用会话控制方案
前端·javascript·后端
Heo22 分钟前
跨域问题解决方案汇总
前端·javascript·后端
Yuroo zhou25 分钟前
石油钻井、HDD、采矿:不同工况下,如何抉择您的陀螺定向短节?
前端·科技·硬件架构·钻井·采矿
shmily麻瓜小菜鸡29 分钟前
Element Plus 的 <el-table> 怎么点击请求后端接口 tableData 进行排序而不是网络断开之后还可以自己排序
前端·javascript·vue.js
二川bro41 分钟前
第38节:WebGL 2.0与Three.js新特性
开发语言·javascript·webgl
xiaoxue..42 分钟前
深入理解 JavaScript 异步编程:从单线程到 Promise 的完整指南
前端·javascript·面试·node.js