卸载阶段
组件卸载时需清理副作用,防止内存泄漏。OpenInula 提供 willUnmount/didUnmount 钩子。
基本用法
function Timer() {
let timer;
didMount(() => {
timer = setInterval(() => {}, 1000);
});
willUnmount(() => clearInterval(timer));
// 或 didUnmount(() => clearInterval(timer));
return <div>定时器已启动</div>;
}
副作用清理
- 清理定时器、事件监听、watch 副作用等
- 推荐所有副作用都在卸载时清理
最佳实践
- 所有副作用都应在卸载时清理
- 推荐用 willUnmount/didUnmount
注意事项
- 清理函数只在组件卸载时执行一次
- 避免遗留定时器、事件监听等,防止内存泄漏