react用useEffect防止数据内存泄漏
函数式
1、创建了一个定时器,你需要在组件卸载时清理:
useEffect(() => {const id = setInterval(() => {console.log('Hello');}, 1000);return () => {// 组件卸载时执行clearInterval(id);};
}, []); // 空依赖数组意味着仅在组件挂载时运行一次
2、确保初始化函数initData不会在组件卸载后继续执行。
useEffect(() => {let unmount = false;(async () => {if (!unmount) {initData();}})();return () => {unmount = true;};}, [initData]);
Class
componentWillUnmount = () => {this.setState = () => false;};
