我在当前的工作项目中编写了类组件,遇到了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

09-30 13:40