我在当前的工作项目中编写了类组件,遇到了JavaScript堆内存不足的问题,然后发现了整个项目中使用的componentWillUnmount
方法。其实它很有用,但是有些组件我不需要清除任何东西,例如:异步调用,超时等。我需要在那里写componentWillUnmount吗?
另外我在这种方法中在主作用域中使用变量使它们null
是否正确?
发布一个例子:
var exampleOne = [];
var exampleTwo;
export class Demo extends Component {
constructor(props) {
super(props);
this.state = {
someState: null
};
}
componentWillUnmount() {
exampleOne = null;
exampleTwo = null;
}
render() {
return <div>Hello World {this.state.someState}</div>;
}
}
export default Demo;
最佳答案
主要在componentWillUnmount中,您主要需要删除已添加的事件侦听器。
例如)=>类似于用于分析和任何setInterval方法的鼠标移动事件。
您不需要清除状态,因为在下次安装它时,它将采用初始状态,并且类实例也将被销毁并重新创建。
希望这会给您更多的了解,您可以阅读更多this,