卸载reactjs组件

时间:2018-08-01 14:35:37

标签: javascript reactjs

我有一个网站,该网站延迟加载来自不同来源的React脚本。对于每个加载的脚本,我们为div提供脚本名称作为id。加载脚本后,它将立即搜索具有ID的div并呈现组件。

由于该站点显示在固定的平板电脑上,因此不会经常重新加载,并且内存占用量非常大。有没有一种方法可以完全卸载反应脚本而无需重新加载网站?有没有办法卸载任何东西 那种脚本?我猜这是垃圾收集器造成的,但是目前它甚至还没有删除很久以前卸载的脚本/组件。

在寻找解决方案时,我发现this个关于角度的线程。我基本上是在寻找一种对react进行相同操作的方法(即使我没有测试角度解也是如此)。

3 个答案:

答案 0 :(得分:2)

在删除脚本标签和容器DOM节点之前,您可以使用unmountComponentAtNode来让React进行清理。

ReactDOM.unmountComponentAtNode(document.getElementById('root'));

答案 1 :(得分:0)

您可以基于条件渲染来加载组件,在条件渲染中,如果满足特定条件,则组件将返回JSX,而在其他情况下则为null。像这样:

render(){
    const {shouldAppear} = this.state
    return(
        {shouldAppear && <MyContent />}
    );
}

答案 2 :(得分:0)

使用使用条件渲染的设计模式,并在componentDidMount中检查是否返回数据或要渲染特定部分。