我有一个网站,该网站延迟加载来自不同来源的React脚本。对于每个加载的脚本,我们为div提供脚本名称作为id。加载脚本后,它将立即搜索具有ID的div并呈现组件。
由于该站点显示在固定的平板电脑上,因此不会经常重新加载,并且内存占用量非常大。有没有一种方法可以完全卸载反应脚本而无需重新加载网站?有没有办法卸载任何东西 那种脚本?我猜这是垃圾收集器造成的,但是目前它甚至还没有删除很久以前卸载的脚本/组件。
在寻找解决方案时,我发现this个关于角度的线程。我基本上是在寻找一种对react进行相同操作的方法(即使我没有测试角度解也是如此)。
答案 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中检查是否返回数据或要渲染特定部分。